From 6eb6379d7a31212d9f5a5d7244ced48866819196 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Wed, 18 Sep 2024 13:15:03 +0200
Subject: [PATCH 01/42] mpsqa.arch: fix model access for both actions

---
 .../org.mpsqa.arch.pluginSolution.plugin.mps  | 160 +++++++++++++-----
 .../org.mpsqa.arch.pluginSolution.msd         |   9 +-
 2 files changed, 121 insertions(+), 48 deletions(-)

diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
index 28f1b391..e36e9fcd 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
@@ -8,6 +8,7 @@
     <use id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage" version="12" />
     <use id="760a0a8c-eabb-4521-8bfd-65db761a9ba3" name="jetbrains.mps.baseLanguage.logging" version="0" />
     <use id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples" version="0" />
+    <use id="63650c59-16c8-498a-99c8-005c7ee9515d" name="jetbrains.mps.lang.access" version="0" />
   </languages>
   <imports>
     <import index="81o" ref="96212ac2-423f-4cfb-b211-b58d0546b6bf/java:net.sourceforge.plantuml(org.mpsqa.arch.pluginSolution/)" />
@@ -23,6 +24,8 @@
     <import index="gsia" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:javax.swing.event(JDK/)" />
     <import index="hyam" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.awt.event(JDK/)" />
     <import index="4nm9" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.project(MPS.IDEA/)" />
+    <import index="qq03" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.actions(MPS.Platform/)" />
+    <import index="z1c3" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.project(MPS.Core/)" implicit="true" />
     <import index="tprs" ref="r:00000000-0000-4000-0000-011c895904a4(jetbrains.mps.ide.actions)" implicit="true" />
     <import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" implicit="true" />
     <import index="tpcu" ref="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" implicit="true" />
@@ -61,6 +64,7 @@
       </concept>
       <concept id="1203071646776" name="jetbrains.mps.lang.plugin.structure.ActionDeclaration" flags="ng" index="sE7Ow">
         <property id="1205250923097" name="caption" index="2uzpH1" />
+        <property id="7458746815261976739" name="requiredAccess" index="2YLI8m" />
         <child id="1203083461638" name="executeFunction" index="tncku" />
         <child id="1217413222820" name="parameter" index="1NuT2Z" />
         <child id="8976425910813834639" name="icon" index="3Uehp1" />
@@ -275,6 +279,14 @@
         <reference id="1170346070688" name="classifier" index="1Y3XeK" />
       </concept>
     </language>
+    <language id="63650c59-16c8-498a-99c8-005c7ee9515d" name="jetbrains.mps.lang.access">
+      <concept id="8974276187400348173" name="jetbrains.mps.lang.access.structure.CommandClosureLiteral" flags="nn" index="1QHqEC" />
+      <concept id="8974276187400348170" name="jetbrains.mps.lang.access.structure.BaseExecuteCommandStatement" flags="nn" index="1QHqEJ">
+        <child id="1423104411234567454" name="repo" index="ukAjM" />
+        <child id="8974276187400348171" name="commandClosureLiteral" index="1QHqEI" />
+      </concept>
+      <concept id="8974276187400348181" name="jetbrains.mps.lang.access.structure.ExecuteLightweightCommandStatement" flags="nn" index="1QHqEK" />
+    </language>
     <language id="fd392034-7849-419d-9071-12563d152375" name="jetbrains.mps.baseLanguage.closures">
       <concept id="1199569711397" name="jetbrains.mps.baseLanguage.closures.structure.ClosureLiteral" flags="nn" index="1bVj0M">
         <child id="1199569906740" name="parameter" index="1bW2Oz" />
@@ -414,6 +426,7 @@
   <node concept="sE7Ow" id="1tkdAPw35e4">
     <property role="TrG5h" value="OpenPlantUmlOnArchitectureSpecification" />
     <property role="2uzpH1" value="Visualize DSLs Architecture with PlantUML" />
+    <property role="2YLI8m" value="6u2MFnph2wS/none" />
     <node concept="tnohg" id="1tkdAPw35e5" role="tncku">
       <node concept="3clFbS" id="1tkdAPw35e6" role="2VODD2">
         <node concept="3cpWs8" id="1Nl9e7Dz2vp" role="3cqZAp">
@@ -433,32 +446,56 @@
           <node concept="3cpWsn" id="1tkdAPw5gL_" role="3cpWs9">
             <property role="TrG5h" value="source" />
             <node concept="17QB3L" id="6qVhvNsIUxR" role="1tU5fm" />
-            <node concept="2YIFZM" id="6qVhvNsIThf" role="33vP2m">
-              <ref role="37wK5l" node="6qVhvNsIzDc" resolve="convertArchSpec" />
-              <ref role="1Pybhc" node="6qVhvNsIxrS" resolve="Arch2PlantUMLConverterUtils" />
-              <node concept="2OqwBi" id="6qVhvNsITJc" role="37wK5m">
-                <node concept="2WthIp" id="6qVhvNsITl1" role="2Oq$k0" />
-                <node concept="3gHZIF" id="6qVhvNsIU2o" role="2OqNvi">
-                  <ref role="2WH_rO" node="1tkdAPw4CYF" resolve="node" />
-                </node>
-              </node>
-              <node concept="1LFfDK" id="1Nl9e7Dz45H" role="37wK5m">
-                <node concept="3cmrfG" id="1Nl9e7Dz4aB" role="1LF_Uc">
-                  <property role="3cmrfH" value="0" />
-                </node>
-                <node concept="37vLTw" id="1Nl9e7Dz38V" role="1LFl5Q">
-                  <ref role="3cqZAo" node="1Nl9e7Dz2vq" resolve="depthAndShowModules" />
+          </node>
+        </node>
+        <node concept="1QHqEK" id="sRpFtPj4Gp" role="3cqZAp">
+          <node concept="1QHqEC" id="sRpFtPj4Gr" role="1QHqEI">
+            <node concept="3clFbS" id="sRpFtPj4Gt" role="1bW5cS">
+              <node concept="3clFbF" id="sRpFtPj4io" role="3cqZAp">
+                <node concept="37vLTI" id="sRpFtPj4iq" role="3clFbG">
+                  <node concept="2YIFZM" id="6qVhvNsIThf" role="37vLTx">
+                    <ref role="37wK5l" node="6qVhvNsIzDc" resolve="convertArchSpec" />
+                    <ref role="1Pybhc" node="6qVhvNsIxrS" resolve="Arch2PlantUMLConverterUtils" />
+                    <node concept="2OqwBi" id="6qVhvNsITJc" role="37wK5m">
+                      <node concept="2WthIp" id="6qVhvNsITl1" role="2Oq$k0" />
+                      <node concept="3gHZIF" id="6qVhvNsIU2o" role="2OqNvi">
+                        <ref role="2WH_rO" node="1tkdAPw4CYF" resolve="node" />
+                      </node>
+                    </node>
+                    <node concept="1LFfDK" id="1Nl9e7Dz45H" role="37wK5m">
+                      <node concept="3cmrfG" id="1Nl9e7Dz4aB" role="1LF_Uc">
+                        <property role="3cmrfH" value="0" />
+                      </node>
+                      <node concept="37vLTw" id="1Nl9e7Dz38V" role="1LFl5Q">
+                        <ref role="3cqZAo" node="1Nl9e7Dz2vq" resolve="depthAndShowModules" />
+                      </node>
+                    </node>
+                    <node concept="1LFfDK" id="1Nl9e7Dz4ey" role="37wK5m">
+                      <node concept="37vLTw" id="1Nl9e7Dz4e$" role="1LFl5Q">
+                        <ref role="3cqZAo" node="1Nl9e7Dz2vq" resolve="depthAndShowModules" />
+                      </node>
+                      <node concept="3cmrfG" id="1Nl9e7Dz4sM" role="1LF_Uc">
+                        <property role="3cmrfH" value="1" />
+                      </node>
+                    </node>
+                  </node>
+                  <node concept="37vLTw" id="sRpFtPj4iu" role="37vLTJ">
+                    <ref role="3cqZAo" node="1tkdAPw5gL_" resolve="source" />
+                  </node>
                 </node>
               </node>
-              <node concept="1LFfDK" id="1Nl9e7Dz4ey" role="37wK5m">
-                <node concept="37vLTw" id="1Nl9e7Dz4e$" role="1LFl5Q">
-                  <ref role="3cqZAo" node="1Nl9e7Dz2vq" resolve="depthAndShowModules" />
-                </node>
-                <node concept="3cmrfG" id="1Nl9e7Dz4sM" role="1LF_Uc">
-                  <property role="3cmrfH" value="1" />
-                </node>
+            </node>
+          </node>
+          <node concept="2OqwBi" id="sRpFtPj8$J" role="ukAjM">
+            <node concept="2OqwBi" id="sRpFtPj4Ms" role="2Oq$k0">
+              <node concept="2WthIp" id="sRpFtPj4Mv" role="2Oq$k0" />
+              <node concept="1DTwFV" id="sRpFtPj80B" role="2OqNvi">
+                <ref role="2WH_rO" node="sRpFtPj5YG" resolve="mpsProject" />
               </node>
             </node>
+            <node concept="liA8E" id="sRpFtPj9cV" role="2OqNvi">
+              <ref role="37wK5l" to="z1c3:~Project.getRepository()" resolve="getRepository" />
+            </node>
           </node>
         </node>
         <node concept="3clFbF" id="1Nl9e7Dzzni" role="3cqZAp">
@@ -491,6 +528,11 @@
       <ref role="1DUlNI" to="qkt:~CommonDataKeys.PROJECT" resolve="PROJECT" />
       <node concept="1oajcY" id="1tkdAPw5qGP" role="1oa70y" />
     </node>
+    <node concept="1DS2jV" id="sRpFtPj5YG" role="1NuT2Z">
+      <property role="TrG5h" value="mpsProject" />
+      <ref role="1DUlNI" to="qq03:~MPSCommonDataKeys.MPS_PROJECT" resolve="MPS_PROJECT" />
+      <node concept="1oajcY" id="sRpFtPj5YH" role="1oa70y" />
+    </node>
     <node concept="1irR5M" id="1Nl9e7D_wKs" role="3Uehp1">
       <property role="2$rrk2" value="1" />
       <node concept="1irR9n" id="1Nl9e7D_x0J" role="1irR9h">
@@ -3069,6 +3111,7 @@
   <node concept="sE7Ow" id="1Nl9e7Dz$j_">
     <property role="TrG5h" value="OpenPlantUmlOnComponentDefinition" />
     <property role="2uzpH1" value="Visualize Component with PlantUML" />
+    <property role="2YLI8m" value="6u2MFnph2wS/none" />
     <node concept="tnohg" id="1Nl9e7Dz$jA" role="tncku">
       <node concept="3clFbS" id="1Nl9e7Dz$jB" role="2VODD2">
         <node concept="3cpWs8" id="1Nl9e7Dz$jC" role="3cqZAp">
@@ -3088,32 +3131,56 @@
           <node concept="3cpWsn" id="1Nl9e7Dz$jJ" role="3cpWs9">
             <property role="TrG5h" value="source" />
             <node concept="17QB3L" id="1Nl9e7Dz$jK" role="1tU5fm" />
-            <node concept="2YIFZM" id="1Nl9e7DzZ1t" role="33vP2m">
-              <ref role="37wK5l" node="1Nl9e7DzK4M" resolve="convertComponentDefinition" />
-              <ref role="1Pybhc" node="6qVhvNsIxrS" resolve="Arch2PlantUMLConverterUtils" />
-              <node concept="2OqwBi" id="1Nl9e7DzZ1u" role="37wK5m">
-                <node concept="2WthIp" id="1Nl9e7DzZ1v" role="2Oq$k0" />
-                <node concept="3gHZIF" id="1Nl9e7DzZ1w" role="2OqNvi">
-                  <ref role="2WH_rO" node="1Nl9e7Dz$k1" resolve="node" />
-                </node>
-              </node>
-              <node concept="1LFfDK" id="1Nl9e7DzZ1x" role="37wK5m">
-                <node concept="3cmrfG" id="1Nl9e7DzZ1y" role="1LF_Uc">
-                  <property role="3cmrfH" value="0" />
-                </node>
-                <node concept="37vLTw" id="1Nl9e7DzZ1z" role="1LFl5Q">
-                  <ref role="3cqZAo" node="1Nl9e7Dz$jD" resolve="depthAndShowModules" />
+          </node>
+        </node>
+        <node concept="1QHqEK" id="sRpFtPj9Yj" role="3cqZAp">
+          <node concept="1QHqEC" id="sRpFtPj9Yl" role="1QHqEI">
+            <node concept="3clFbS" id="sRpFtPj9Yn" role="1bW5cS">
+              <node concept="3clFbF" id="sRpFtPj9Ky" role="3cqZAp">
+                <node concept="37vLTI" id="sRpFtPj9K$" role="3clFbG">
+                  <node concept="2YIFZM" id="1Nl9e7DzZ1t" role="37vLTx">
+                    <ref role="37wK5l" node="1Nl9e7DzK4M" resolve="convertComponentDefinition" />
+                    <ref role="1Pybhc" node="6qVhvNsIxrS" resolve="Arch2PlantUMLConverterUtils" />
+                    <node concept="2OqwBi" id="1Nl9e7DzZ1u" role="37wK5m">
+                      <node concept="2WthIp" id="1Nl9e7DzZ1v" role="2Oq$k0" />
+                      <node concept="3gHZIF" id="1Nl9e7DzZ1w" role="2OqNvi">
+                        <ref role="2WH_rO" node="1Nl9e7Dz$k1" resolve="node" />
+                      </node>
+                    </node>
+                    <node concept="1LFfDK" id="1Nl9e7DzZ1x" role="37wK5m">
+                      <node concept="3cmrfG" id="1Nl9e7DzZ1y" role="1LF_Uc">
+                        <property role="3cmrfH" value="0" />
+                      </node>
+                      <node concept="37vLTw" id="1Nl9e7DzZ1z" role="1LFl5Q">
+                        <ref role="3cqZAo" node="1Nl9e7Dz$jD" resolve="depthAndShowModules" />
+                      </node>
+                    </node>
+                    <node concept="1LFfDK" id="1Nl9e7DzZ1$" role="37wK5m">
+                      <node concept="37vLTw" id="1Nl9e7DzZ1_" role="1LFl5Q">
+                        <ref role="3cqZAo" node="1Nl9e7Dz$jD" resolve="depthAndShowModules" />
+                      </node>
+                      <node concept="3cmrfG" id="1Nl9e7DzZ1A" role="1LF_Uc">
+                        <property role="3cmrfH" value="1" />
+                      </node>
+                    </node>
+                  </node>
+                  <node concept="37vLTw" id="sRpFtPj9KC" role="37vLTJ">
+                    <ref role="3cqZAo" node="1Nl9e7Dz$jJ" resolve="source" />
+                  </node>
                 </node>
               </node>
-              <node concept="1LFfDK" id="1Nl9e7DzZ1$" role="37wK5m">
-                <node concept="37vLTw" id="1Nl9e7DzZ1_" role="1LFl5Q">
-                  <ref role="3cqZAo" node="1Nl9e7Dz$jD" resolve="depthAndShowModules" />
-                </node>
-                <node concept="3cmrfG" id="1Nl9e7DzZ1A" role="1LF_Uc">
-                  <property role="3cmrfH" value="1" />
-                </node>
+            </node>
+          </node>
+          <node concept="2OqwBi" id="sRpFtPjc5F" role="ukAjM">
+            <node concept="2OqwBi" id="sRpFtPjavb" role="2Oq$k0">
+              <node concept="2WthIp" id="sRpFtPjave" role="2Oq$k0" />
+              <node concept="1DTwFV" id="sRpFtPjavg" role="2OqNvi">
+                <ref role="2WH_rO" node="sRpFtPjahs" resolve="project" />
               </node>
             </node>
+            <node concept="liA8E" id="sRpFtPjcHV" role="2OqNvi">
+              <ref role="37wK5l" to="z1c3:~Project.getRepository()" resolve="getRepository" />
+            </node>
           </node>
         </node>
         <node concept="3clFbF" id="1Nl9e7Dz$jV" role="3cqZAp">
@@ -3146,6 +3213,11 @@
       <ref role="1DUlNI" to="qkt:~CommonDataKeys.PROJECT" resolve="PROJECT" />
       <node concept="1oajcY" id="1Nl9e7Dz$k6" role="1oa70y" />
     </node>
+    <node concept="1DS2jV" id="sRpFtPjahs" role="1NuT2Z">
+      <property role="TrG5h" value="project" />
+      <ref role="1DUlNI" to="qq03:~MPSCommonDataKeys.MPS_PROJECT" resolve="MPS_PROJECT" />
+      <node concept="1oajcY" id="sRpFtPjaht" role="1oa70y" />
+    </node>
     <node concept="1irR5M" id="1Nl9e7D_x9t" role="3Uehp1">
       <property role="2$rrk2" value="2" />
       <node concept="1irR9n" id="1Nl9e7D_xfA" role="1irR9h">
diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
index fa4dea5c..7cdfab43 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
@@ -4,12 +4,12 @@
     <modelRoot contentPath="${module}" type="default">
       <sourceRoot location="models" />
     </modelRoot>
-    <modelRoot contentPath="${module}/lib/plantuml-1.2022.6.jar!/" type="java_classes">
-      <sourceRoot location="." />
-    </modelRoot>
-    <modelRoot contentPath="${module}/lib" type="java_classes">
+    <modelRoot type="java_classes" contentPath="${module}/lib">
       <sourceRoot location="plantuml-asl-1.2023.13.jar" />
     </modelRoot>
+    <modelRoot type="java_classes" contentPath="${module}/lib/plantuml-1.2022.6.jar!/">
+      <sourceRoot location="." />
+    </modelRoot>
   </models>
   <facets>
     <facet type="java" compile="mps" classes="mps" ext="yes">
@@ -38,6 +38,7 @@
     <language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
     <language slang="l:760a0a8c-eabb-4521-8bfd-65db761a9ba3:jetbrains.mps.baseLanguage.logging" version="0" />
     <language slang="l:a247e09e-2435-45ba-b8d2-07e93feba96a:jetbrains.mps.baseLanguage.tuples" version="0" />
+    <language slang="l:63650c59-16c8-498a-99c8-005c7ee9515d:jetbrains.mps.lang.access" version="0" />
     <language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="2" />
     <language slang="l:446c26eb-2b7b-4bf0-9b35-f83fa582753e:jetbrains.mps.lang.modelapi" version="0" />
     <language slang="l:28f9e497-3b42-4291-aeba-0a1039153ab1:jetbrains.mps.lang.plugin" version="5" />

From e8bf8d3cb58098fd2fc9315aa1296620e2e8471e Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Wed, 18 Sep 2024 13:23:42 +0200
Subject: [PATCH 02/42] mpsqa.arch: fix refreshing of the plantUML diagram

---
 .../org.mpsqa.arch.pluginSolution.plugin.mps  | 93 +++++++++++++++++--
 1 file changed, 85 insertions(+), 8 deletions(-)

diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
index e36e9fcd..87c1259e 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
@@ -26,10 +26,10 @@
     <import index="4nm9" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.project(MPS.IDEA/)" />
     <import index="qq03" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.actions(MPS.Platform/)" />
     <import index="z1c3" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.project(MPS.Core/)" implicit="true" />
+    <import index="71xd" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.tools(MPS.Platform/)" implicit="true" />
     <import index="tprs" ref="r:00000000-0000-4000-0000-011c895904a4(jetbrains.mps.ide.actions)" implicit="true" />
     <import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" implicit="true" />
     <import index="tpcu" ref="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" implicit="true" />
-    <import index="71xd" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.tools(MPS.Platform/)" implicit="true" />
   </imports>
   <registry>
     <language id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples">
@@ -923,6 +923,16 @@
                             </node>
                           </node>
                         </node>
+                        <node concept="3clFbF" id="sRpFtPjtd4" role="3cqZAp">
+                          <node concept="2OqwBi" id="sRpFtPjtoE" role="3clFbG">
+                            <node concept="2WthIp" id="sRpFtPjtd6" role="2Oq$k0">
+                              <ref role="32nkFo" node="1tkdAPw5hIG" resolve="PlantUML" />
+                            </node>
+                            <node concept="2XshWL" id="sRpFtPk80$" role="2OqNvi">
+                              <ref role="2WH_rO" node="sRpFtPk6cV" resolve="refreshComponent" />
+                            </node>
+                          </node>
+                        </node>
                       </node>
                       <node concept="2AHcQZ" id="fm3v0WQuO8" role="2AJF6D">
                         <ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
@@ -1389,6 +1399,47 @@
         </node>
       </node>
     </node>
+    <node concept="2XrIbr" id="sRpFtPk6cV" role="2XNbBy">
+      <property role="TrG5h" value="refreshComponent" />
+      <node concept="3cqZAl" id="sRpFtPk77z" role="3clF45" />
+      <node concept="3clFbS" id="sRpFtPk6cX" role="3clF47">
+        <node concept="3cpWs8" id="sRpFtPkazK" role="3cqZAp">
+          <node concept="3cpWsn" id="sRpFtPkazL" role="3cpWs9">
+            <property role="TrG5h" value="component" />
+            <node concept="3uibUv" id="sRpFtPkaxn" role="1tU5fm">
+              <ref role="3uigEE" to="dxuu:~JComponent" resolve="JComponent" />
+            </node>
+            <node concept="2OqwBi" id="sRpFtPkazM" role="33vP2m">
+              <node concept="2WthIp" id="sRpFtPkazN" role="2Oq$k0" />
+              <node concept="liA8E" id="sRpFtPkazO" role="2OqNvi">
+                <ref role="37wK5l" to="71xd:~BaseTool.getComponent()" resolve="getComponent" />
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbF" id="sRpFtPk8IQ" role="3cqZAp">
+          <node concept="2OqwBi" id="sRpFtPjTZM" role="3clFbG">
+            <node concept="liA8E" id="sRpFtPjUJK" role="2OqNvi">
+              <ref role="37wK5l" to="dxuu:~JComponent.revalidate()" resolve="revalidate" />
+            </node>
+            <node concept="37vLTw" id="sRpFtPkazP" role="2Oq$k0">
+              <ref role="3cqZAo" node="sRpFtPkazL" resolve="component" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbF" id="sRpFtPjUY1" role="3cqZAp">
+          <node concept="2OqwBi" id="sRpFtPjUY3" role="3clFbG">
+            <node concept="37vLTw" id="sRpFtPkazQ" role="2Oq$k0">
+              <ref role="3cqZAo" node="sRpFtPkazL" resolve="component" />
+            </node>
+            <node concept="liA8E" id="sRpFtPjUY7" role="2OqNvi">
+              <ref role="37wK5l" to="z60i:~Component.repaint()" resolve="repaint" />
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="3Tm1VV" id="sRpFtPk6VM" role="1B3o_S" />
+    </node>
   </node>
   <node concept="tC5Ba" id="1tkdAPw6lGy">
     <property role="TrG5h" value="PlantUMLGroup" />
@@ -3076,15 +3127,41 @@
                 </node>
               </node>
             </node>
-            <node concept="3clFbF" id="1tkdAPw78Nc" role="3cqZAp">
-              <node concept="2OqwBi" id="1tkdAPw78Ww" role="3clFbG">
-                <node concept="37vLTw" id="1tkdAPw78Na" role="2Oq$k0">
+            <node concept="3clFbJ" id="sRpFtPkbVu" role="3cqZAp">
+              <node concept="3clFbS" id="sRpFtPkbVw" role="3clFbx">
+                <node concept="3clFbF" id="sRpFtPkd$P" role="3cqZAp">
+                  <node concept="2OqwBi" id="sRpFtPkdDp" role="3clFbG">
+                    <node concept="37vLTw" id="sRpFtPkd$N" role="2Oq$k0">
+                      <ref role="3cqZAo" node="1tkdAPw5mXu" resolve="tool" />
+                    </node>
+                    <node concept="2XshWL" id="sRpFtPkdKW" role="2OqNvi">
+                      <ref role="2WH_rO" node="sRpFtPk6cV" resolve="refreshComponent" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="2OqwBi" id="sRpFtPkcCw" role="3clFbw">
+                <node concept="37vLTw" id="sRpFtPkcqh" role="2Oq$k0">
                   <ref role="3cqZAo" node="1tkdAPw5mXu" resolve="tool" />
                 </node>
-                <node concept="liA8E" id="1tkdAPw797S" role="2OqNvi">
-                  <ref role="37wK5l" to="71xd:~BaseTool.openToolLater(boolean)" resolve="openToolLater" />
-                  <node concept="3clFbT" id="1tkdAPw79aW" role="37wK5m">
-                    <property role="3clFbU" value="true" />
+                <node concept="liA8E" id="sRpFtPkcQW" role="2OqNvi">
+                  <ref role="37wK5l" to="71xd:~BaseTool.toolIsOpened()" resolve="toolIsOpened" />
+                </node>
+              </node>
+              <node concept="9aQIb" id="sRpFtPkdRk" role="9aQIa">
+                <node concept="3clFbS" id="sRpFtPkdRl" role="9aQI4">
+                  <node concept="3clFbF" id="1tkdAPw78Nc" role="3cqZAp">
+                    <node concept="2OqwBi" id="1tkdAPw78Ww" role="3clFbG">
+                      <node concept="37vLTw" id="1tkdAPw78Na" role="2Oq$k0">
+                        <ref role="3cqZAo" node="1tkdAPw5mXu" resolve="tool" />
+                      </node>
+                      <node concept="liA8E" id="1tkdAPw797S" role="2OqNvi">
+                        <ref role="37wK5l" to="71xd:~BaseTool.openToolLater(boolean)" resolve="openToolLater" />
+                        <node concept="3clFbT" id="1tkdAPw79aW" role="37wK5m">
+                          <property role="3clFbU" value="true" />
+                        </node>
+                      </node>
+                    </node>
                   </node>
                 </node>
               </node>

From 47bb22d7eacda2d85486dee3f8435ff2324e78bf Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Wed, 18 Sep 2024 13:46:57 +0200
Subject: [PATCH 03/42] mpsqa.arch: improve scaling quality and add support for
 HiDPI

---
 .../org.mpsqa.arch.pluginSolution.plugin.mps  | 47 ++++++++++---------
 1 file changed, 26 insertions(+), 21 deletions(-)

diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
index 87c1259e..f14f2f9b 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
@@ -25,6 +25,8 @@
     <import index="hyam" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.awt.event(JDK/)" />
     <import index="4nm9" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.project(MPS.IDEA/)" />
     <import index="qq03" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.actions(MPS.Platform/)" />
+    <import index="g1qu" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.util.ui(MPS.IDEA/)" />
+    <import index="l5y2" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.ui.scale(MPS.IDEA/)" />
     <import index="z1c3" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.project(MPS.Core/)" implicit="true" />
     <import index="71xd" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.tools(MPS.Platform/)" implicit="true" />
     <import index="tprs" ref="r:00000000-0000-4000-0000-011c895904a4(jetbrains.mps.ide.actions)" implicit="true" />
@@ -1321,28 +1323,21 @@
             </node>
           </node>
         </node>
-        <node concept="3cpWs8" id="fm3v0WQwsM" role="3cqZAp">
-          <node concept="3cpWsn" id="fm3v0WQwsN" role="3cpWs9">
-            <property role="TrG5h" value="scaledInstance" />
-            <node concept="3uibUv" id="fm3v0WQwsO" role="1tU5fm">
+        <node concept="3cpWs8" id="sRpFtPlM_w" role="3cqZAp">
+          <node concept="3cpWsn" id="sRpFtPlM_x" role="3cpWs9">
+            <property role="TrG5h" value="hidpiImage" />
+            <node concept="3uibUv" id="sRpFtPlM_y" role="1tU5fm">
               <ref role="3uigEE" to="z60i:~Image" resolve="Image" />
             </node>
-            <node concept="2OqwBi" id="fm3v0WQwsP" role="33vP2m">
-              <node concept="37vLTw" id="fm3v0WQwti" role="2Oq$k0">
+            <node concept="2YIFZM" id="sRpFtPlOO1" role="33vP2m">
+              <ref role="37wK5l" to="g1qu:~ImageUtil.ensureHiDPI(java.awt.Image,com.intellij.ui.scale.ScaleContext)" resolve="ensureHiDPI" />
+              <ref role="1Pybhc" to="g1qu:~ImageUtil" resolve="ImageUtil" />
+              <node concept="37vLTw" id="sRpFtPlP9y" role="37wK5m">
                 <ref role="3cqZAo" node="fm3v0WQwtg" resolve="bi" />
               </node>
-              <node concept="liA8E" id="fm3v0WQwsR" role="2OqNvi">
-                <ref role="37wK5l" to="z60i:~Image.getScaledInstance(int,int,int)" resolve="getScaledInstance" />
-                <node concept="37vLTw" id="fm3v0WQVAV" role="37wK5m">
-                  <ref role="3cqZAo" node="fm3v0WQSl5" resolve="newWidth" />
-                </node>
-                <node concept="37vLTw" id="fm3v0WQVHa" role="37wK5m">
-                  <ref role="3cqZAo" node="fm3v0WQUhV" resolve="newHeight" />
-                </node>
-                <node concept="10M0yZ" id="fm3v0WQwsU" role="37wK5m">
-                  <ref role="3cqZAo" to="z60i:~Image.SCALE_SMOOTH" resolve="SCALE_SMOOTH" />
-                  <ref role="1PxDUh" to="z60i:~Image" resolve="Image" />
-                </node>
+              <node concept="2YIFZM" id="sRpFtPlPP5" role="37wK5m">
+                <ref role="37wK5l" to="l5y2:~ScaleContext.create()" resolve="create" />
+                <ref role="1Pybhc" to="l5y2:~ScaleContext" resolve="ScaleContext" />
               </node>
             </node>
           </node>
@@ -1358,9 +1353,19 @@
                 <ref role="37wK5l" to="dxuu:~JLabel.&lt;init&gt;(javax.swing.Icon)" resolve="JLabel" />
                 <node concept="2ShNRf" id="fm3v0WQwt0" role="37wK5m">
                   <node concept="1pGfFk" id="fm3v0WQwt1" role="2ShVmc">
-                    <ref role="37wK5l" to="dxuu:~ImageIcon.&lt;init&gt;(java.awt.Image)" resolve="ImageIcon" />
-                    <node concept="37vLTw" id="fm3v0WQwt2" role="37wK5m">
-                      <ref role="3cqZAo" node="fm3v0WQwsN" resolve="scaledInstance" />
+                    <ref role="37wK5l" to="g1qu:~JBImageIcon.&lt;init&gt;(java.awt.Image)" resolve="JBImageIcon" />
+                    <node concept="2YIFZM" id="sRpFtPlQaY" role="37wK5m">
+                      <ref role="37wK5l" to="g1qu:~ImageUtil.scaleImage(java.awt.Image,int,int)" resolve="scaleImage" />
+                      <ref role="1Pybhc" to="g1qu:~ImageUtil" resolve="ImageUtil" />
+                      <node concept="37vLTw" id="sRpFtPlQaZ" role="37wK5m">
+                        <ref role="3cqZAo" node="sRpFtPlM_x" resolve="hidpiImage" />
+                      </node>
+                      <node concept="37vLTw" id="sRpFtPlTbZ" role="37wK5m">
+                        <ref role="3cqZAo" node="fm3v0WQSl5" resolve="newWidth" />
+                      </node>
+                      <node concept="37vLTw" id="sRpFtPlTyB" role="37wK5m">
+                        <ref role="3cqZAo" node="fm3v0WQUhV" resolve="newHeight" />
+                      </node>
                     </node>
                   </node>
                 </node>

From fcee767a128fdf0f23f5c67abfe1a90ba07c500f Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Wed, 18 Sep 2024 14:24:29 +0200
Subject: [PATCH 04/42] mpsqa.arch: small improvements + add a refresh button

---
 .../models/org.mpsqa.arch.editor.mps          |  64 +-
 .../org.mpsqa.arch.pluginSolution.plugin.mps  | 754 +++++++++++++-----
 .../org.mpsqa.arch.pluginSolution.msd         |   4 +
 3 files changed, 618 insertions(+), 204 deletions(-)

diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
index 8996fab3..435ed3b6 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
@@ -10,9 +10,11 @@
     <import index="z60i" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.awt(JDK/)" />
     <import index="u41u" ref="r:88cf32d8-7e39-47c5-b37a-24d1801279ce(org.mpsqa.arch.util)" />
     <import index="lui2" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.module(MPS.OpenAPI/)" />
+    <import index="25zl" ref="r:7bd127a5-e641-4c13-b150-b9c9b96f76ae(jetbrains.mps.lang.modelapi.editor)" />
     <import index="ryx8" ref="r:d0c25d1d-f21e-42b4-b319-5eef0584d5ca(org.mpsqa.arch.structure)" implicit="true" />
     <import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
     <import index="cj4x" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/java:jetbrains.mps.openapi.editor(MPS.Editor/)" implicit="true" />
+    <import index="tp25" ref="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" implicit="true" />
     <import index="tpen" ref="r:00000000-0000-4000-0000-011c895902c3(jetbrains.mps.baseLanguage.editor)" implicit="true" />
     <import index="zqge" ref="r:59e90602-6655-4552-86eb-441a42a9a0e4(jetbrains.mps.lang.text.structure)" implicit="true" />
     <import index="vdrq" ref="r:85354f47-14fd-40e6-a7cc-2d1aa842c4cd(jetbrains.mps.lang.text.behavior)" implicit="true" />
@@ -50,6 +52,9 @@
         <child id="1080736633877" name="cellModel" index="2wV5jI" />
       </concept>
       <concept id="795210086017940429" name="jetbrains.mps.lang.editor.structure.ReadOnlyStyleClassItem" flags="lg" index="xShMh" />
+      <concept id="6718020819487620873" name="jetbrains.mps.lang.editor.structure.TransformationMenuReference_Named" flags="ng" index="A1WHu">
+        <reference id="6718020819487620874" name="menu" index="A1WHt" />
+      </concept>
       <concept id="1638911550608610798" name="jetbrains.mps.lang.editor.structure.QueryFunction_TransformationMenu_Execute" flags="ig" index="IWg2L" />
       <concept id="1638911550608610278" name="jetbrains.mps.lang.editor.structure.TransformationMenuPart_Action" flags="ng" index="IWgqT">
         <child id="1638911550608610281" name="executeFunction" index="IWgqQ" />
@@ -85,12 +90,14 @@
       <concept id="701160265283677816" name="jetbrains.mps.lang.editor.structure.TransparentStyleSheetItem" flags="ln" index="3noiJN" />
       <concept id="1088185857835" name="jetbrains.mps.lang.editor.structure.InlineEditorComponent" flags="ig" index="1sVBvm" />
       <concept id="1139848536355" name="jetbrains.mps.lang.editor.structure.CellModel_WithRole" flags="ng" index="1$h60E">
+        <property id="1139852716018" name="noTargetText" index="1$x2rV" />
         <property id="1140017977771" name="readOnly" index="1Intyy" />
         <property id="1140114345053" name="allowEmptyText" index="1O74Pk" />
         <reference id="1140103550593" name="relationDeclaration" index="1NtTu8" />
       </concept>
       <concept id="1073389214265" name="jetbrains.mps.lang.editor.structure.EditorCellModel" flags="ng" index="3EYTF0">
         <child id="1142887637401" name="renderingCondition" index="pqm2j" />
+        <child id="4202667662392416064" name="transformationMenu" index="3vIgyS" />
       </concept>
       <concept id="1073389446423" name="jetbrains.mps.lang.editor.structure.CellModel_Collection" flags="sn" stub="3013115976261988961" index="3EZMnI">
         <property id="1160590353935" name="usesFolding" index="S$Qs1" />
@@ -164,6 +171,7 @@
       <concept id="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
         <child id="1068580123156" name="expression" index="3clFbG" />
       </concept>
+      <concept id="1068580123157" name="jetbrains.mps.baseLanguage.structure.Statement" flags="nn" index="3clFbH" />
       <concept id="1068580123159" name="jetbrains.mps.baseLanguage.structure.IfStatement" flags="nn" index="3clFbJ">
         <child id="1068580123160" name="condition" index="3clFbw" />
         <child id="1068580123161" name="ifTrue" index="3clFbx" />
@@ -223,6 +231,10 @@
       <concept id="1145383075378" name="jetbrains.mps.lang.smodel.structure.SNodeListType" flags="in" index="2I9FWS" />
       <concept id="1171305280644" name="jetbrains.mps.lang.smodel.structure.Node_GetDescendantsOperation" flags="nn" index="2Rf3mk" />
       <concept id="1139184414036" name="jetbrains.mps.lang.smodel.structure.LinkList_AddNewChildOperation" flags="nn" index="WFELt" />
+      <concept id="1139613262185" name="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" flags="nn" index="1mfA1w" />
+      <concept id="1139621453865" name="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" flags="nn" index="1mIQ4w">
+        <child id="1177027386292" name="conceptArgument" index="cj9EA" />
+      </concept>
       <concept id="1172008320231" name="jetbrains.mps.lang.smodel.structure.Node_IsNotNullOperation" flags="nn" index="3x8VRR" />
       <concept id="1144101972840" name="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" flags="ng" index="1xMEDy">
         <child id="1207343664468" name="conceptArgument" index="ri$Ld" />
@@ -530,7 +542,7 @@
           </node>
         </node>
         <node concept="VechU" id="Te1zv$_lnw" role="3F10Kt">
-          <property role="Vb096" value="fLwANPt/cyan" />
+          <property role="Vb096" value="fLwANPp/orange" />
         </node>
       </node>
     </node>
@@ -689,20 +701,29 @@
         <ref role="PMmxG" node="2p0G1uTtlry" resolve="CommentEditorComponent" />
       </node>
       <node concept="3EZMnI" id="6MUZd5Uje4m" role="3EZMnx">
-        <node concept="3F0ifn" id="6MUZd5Uje4t" role="3EZMnx">
-          <property role="3F0ifm" value="module component:" />
-        </node>
-        <node concept="3F1sOY" id="6MUZd5Uje4B" role="3EZMnx">
+        <node concept="1iCGBv" id="sRpFtPvXu7" role="3EZMnx">
           <ref role="1NtTu8" to="ryx8:6MUZd5Uje4i" resolve="module" />
+          <node concept="1sVBvm" id="sRpFtPvXu9" role="1sWHZn">
+            <node concept="3F1sOY" id="sRpFtPvXud" role="2wV5jI">
+              <ref role="1NtTu8" to="tp25:1t9FffgebJ_" resolve="moduleId" />
+              <node concept="A1WHu" id="5ZqXG2mZI$k" role="3vIgyS">
+                <ref role="A1WHt" to="25zl:7k$14oQs2hn" resolve="ContextRepositoryModules_TM" />
+              </node>
+            </node>
+          </node>
         </node>
         <node concept="2iRfu4" id="6MUZd5Uje4p" role="2iSdaV" />
         <node concept="3F0ifn" id="fm3v0WRfGT" role="3EZMnx">
-          <property role="3F0ifm" value="short name:" />
+          <property role="3F0ifm" value="as" />
         </node>
         <node concept="3F0A7n" id="fm3v0WRfH9" role="3EZMnx">
           <property role="1O74Pk" value="true" />
+          <property role="1$x2rV" value="no short name" />
           <ref role="1NtTu8" to="ryx8:fm3v0WReOV" resolve="shortName" />
         </node>
+        <node concept="3F0ifn" id="sRpFtPwKen" role="3EZMnx">
+          <property role="3F0ifm" value="(module component)" />
+        </node>
         <node concept="18a60v" id="fm3v0X15X2" role="3EZMnx">
           <node concept="VPM3Z" id="fm3v0X15X4" role="3F10Kt" />
         </node>
@@ -710,8 +731,6 @@
       <node concept="3EZMnI" id="1tkdAPw1fYc" role="3EZMnx">
         <node concept="VPM3Z" id="1tkdAPw1fYe" role="3F10Kt" />
         <node concept="3XFhqQ" id="1tkdAPw1fYq" role="3EZMnx" />
-        <node concept="3XFhqQ" id="fm3v0WRQDk" role="3EZMnx" />
-        <node concept="3XFhqQ" id="fm3v0WRQDv" role="3EZMnx" />
         <node concept="3F0ifn" id="1tkdAPw1fYw" role="3EZMnx">
           <property role="3F0ifm" value="excluded models:" />
         </node>
@@ -782,10 +801,11 @@
         </node>
         <node concept="2iRfu4" id="fm3v0WRQHD" role="2iSdaV" />
         <node concept="3F0ifn" id="fm3v0WRQHE" role="3EZMnx">
-          <property role="3F0ifm" value="short name:" />
+          <property role="3F0ifm" value="as" />
         </node>
         <node concept="3F0A7n" id="fm3v0WRQHF" role="3EZMnx">
           <property role="1O74Pk" value="true" />
+          <property role="1$x2rV" value="no short name" />
           <ref role="1NtTu8" to="ryx8:fm3v0WReOV" resolve="shortName" />
         </node>
       </node>
@@ -795,15 +815,35 @@
     <property role="3GE5qa" value="dependencies" />
     <ref role="1XX52x" to="ryx8:6MUZd5Uj9MQ" resolve="ComponentDependency" />
     <node concept="3EZMnI" id="6MUZd5UjK7P" role="2wV5jI">
-      <node concept="3F0ifn" id="6MUZd5UjK7W" role="3EZMnx">
-        <property role="3F0ifm" value="depends on:" />
-      </node>
       <node concept="3F2HdR" id="6MUZd5UjK82" role="3EZMnx">
         <property role="2czwfO" value="," />
         <ref role="1NtTu8" to="ryx8:6MUZd5UjK7L" resolve="dependsOn" />
         <node concept="2iRfu4" id="6MUZd5UjK84" role="2czzBx" />
       </node>
       <node concept="2iRfu4" id="6MUZd5UjK7S" role="2iSdaV" />
+      <node concept="3F0ifn" id="sRpFtPwkHt" role="3EZMnx">
+        <property role="3F0ifm" value="(dependency)" />
+        <node concept="pkWqt" id="sRpFtPwyTO" role="pqm2j">
+          <node concept="3clFbS" id="sRpFtPwyTP" role="2VODD2">
+            <node concept="3clFbF" id="sRpFtPwyUO" role="3cqZAp">
+              <node concept="3fqX7Q" id="sRpFtPw$As" role="3clFbG">
+                <node concept="2OqwBi" id="sRpFtPw$Au" role="3fr31v">
+                  <node concept="2OqwBi" id="sRpFtPw$Av" role="2Oq$k0">
+                    <node concept="pncrf" id="sRpFtPw$Aw" role="2Oq$k0" />
+                    <node concept="1mfA1w" id="sRpFtPw$Ax" role="2OqNvi" />
+                  </node>
+                  <node concept="1mIQ4w" id="sRpFtPw$Ay" role="2OqNvi">
+                    <node concept="chp4Y" id="sRpFtPw$Az" role="cj9EA">
+                      <ref role="cht4Q" to="ryx8:6MUZd5Uje4h" resolve="ModuleComponent" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbH" id="sRpFtPw$A_" role="3cqZAp" />
+          </node>
+        </node>
+      </node>
     </node>
   </node>
   <node concept="24kQdi" id="fm3v0WWntN">
diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
index f14f2f9b..7725f748 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
@@ -27,7 +27,11 @@
     <import index="qq03" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.actions(MPS.Platform/)" />
     <import index="g1qu" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.util.ui(MPS.IDEA/)" />
     <import index="l5y2" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.ui.scale(MPS.IDEA/)" />
-    <import index="z1c3" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.project(MPS.Core/)" implicit="true" />
+    <import index="z1c3" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.project(MPS.Platform/)" />
+    <import index="3s15" ref="86441d7a-e194-42da-81a5-2161ec62a379/java:jetbrains.mps.workbench(MPS.Workbench/)" />
+    <import index="ddhc" ref="39983771-4e9b-401b-a1a9-1da6c777c843/java:com.intellij.ide(MPS.ThirdParty/)" />
+    <import index="alof" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.project(MPS.Platform/)" />
+    <import index="z1c4" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.project(MPS.Core/)" implicit="true" />
     <import index="71xd" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.tools(MPS.Platform/)" implicit="true" />
     <import index="tprs" ref="r:00000000-0000-4000-0000-011c895904a4(jetbrains.mps.ide.actions)" implicit="true" />
     <import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" implicit="true" />
@@ -35,15 +39,22 @@
   </imports>
   <registry>
     <language id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples">
-      <concept id="1238852151516" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleType" flags="in" index="1LlUBW">
-        <child id="1238852204892" name="componentType" index="1Lm7xW" />
+      <concept id="1239360506533" name="jetbrains.mps.baseLanguage.tuples.structure.NamedTupleDeclaration" flags="ng" index="2fD8I5">
+        <child id="1239529553065" name="component" index="2pHZQ9" />
       </concept>
-      <concept id="1238853782547" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleLiteral" flags="nn" index="1Ls8ON">
-        <child id="1238853845806" name="component" index="1Lso8e" />
+      <concept id="1239462176079" name="jetbrains.mps.baseLanguage.tuples.structure.NamedTupleComponentDeclaration" flags="ng" index="2lGYhJ">
+        <child id="1239462974287" name="type" index="2lK19J" />
       </concept>
-      <concept id="1238857743184" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleMemberAccessExpression" flags="nn" index="1LFfDK">
-        <child id="1238857764950" name="tuple" index="1LFl5Q" />
-        <child id="1238857834412" name="index" index="1LF_Uc" />
+      <concept id="1239559992092" name="jetbrains.mps.baseLanguage.tuples.structure.NamedTupleLiteral" flags="nn" index="2ry78W">
+        <reference id="1239560008022" name="tupleDeclaration" index="2ryb1Q" />
+        <child id="1239560910577" name="componentRef" index="2r_Bvh" />
+      </concept>
+      <concept id="1239560581441" name="jetbrains.mps.baseLanguage.tuples.structure.NamedTupleComponentReference" flags="ng" index="2r$n1x">
+        <reference id="1239560595302" name="componentDeclaration" index="2r$qp6" />
+        <child id="1239560837729" name="value" index="2r_lH1" />
+      </concept>
+      <concept id="1239576519914" name="jetbrains.mps.baseLanguage.tuples.structure.NamedTupleComponentAccessOperation" flags="nn" index="2sxana">
+        <reference id="1239576542472" name="component" index="2sxfKC" />
       </concept>
     </language>
     <language id="982eb8df-2c96-4bd7-9963-11712ea622e5" name="jetbrains.mps.lang.resources">
@@ -182,6 +193,18 @@
         <property id="1176718929932" name="isFinal" index="3TUv4t" />
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+        <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
+      </concept>
+      <concept id="1109279763828" name="jetbrains.mps.baseLanguage.structure.TypeVariableDeclaration" flags="ng" index="16euLQ">
+        <child id="1214996921760" name="bound" index="3ztrMU" />
+      </concept>
+      <concept id="1109279851642" name="jetbrains.mps.baseLanguage.structure.GenericDeclaration" flags="ng" index="16eOlS">
+        <child id="1109279881614" name="typeVariableDeclaration" index="16eVyc" />
+      </concept>
+      <concept id="1109283449304" name="jetbrains.mps.baseLanguage.structure.TypeVariableReference" flags="in" index="16syzq">
+        <reference id="1109283546497" name="typeVariableDeclaration" index="16sUi3" />
+      </concept>
       <concept id="1092119917967" name="jetbrains.mps.baseLanguage.structure.MulExpression" flags="nn" index="17qRlL" />
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
         <reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
@@ -245,6 +268,7 @@
       <concept id="7812454656619025412" name="jetbrains.mps.baseLanguage.structure.LocalMethodCall" flags="nn" index="1rXfSq" />
       <concept id="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
         <reference id="1107535924139" name="classifier" index="3uigEE" />
+        <child id="1109201940907" name="parameter" index="11_B2D" />
       </concept>
       <concept id="1081773326031" name="jetbrains.mps.baseLanguage.structure.BinaryOperation" flags="nn" index="3uHJSO">
         <child id="1081773367579" name="rightExpression" index="3uHU7w" />
@@ -376,13 +400,6 @@
         <property id="8575328350543493365" name="message" index="huDt6" />
         <property id="2423417345669755629" name="filter" index="1eyWvh" />
       </concept>
-      <concept id="709746936026466394" name="jetbrains.mps.lang.core.structure.ChildAttribute" flags="ng" index="3VBwX9">
-        <property id="709746936026609031" name="linkId" index="3V$3ak" />
-        <property id="709746936026609029" name="role_DebugInfo" index="3V$3am" />
-      </concept>
-      <concept id="4452961908202556907" name="jetbrains.mps.lang.core.structure.BaseCommentAttribute" flags="ng" index="1X3_iC">
-        <child id="3078666699043039389" name="commentedNode" index="8Wnug" />
-      </concept>
     </language>
     <language id="c7fb639f-be78-4307-89b0-b5959c3fa8c8" name="jetbrains.mps.lang.text">
       <concept id="155656958578482948" name="jetbrains.mps.lang.text.structure.Word" flags="nn" index="3oM_SD">
@@ -433,14 +450,30 @@
       <node concept="3clFbS" id="1tkdAPw35e6" role="2VODD2">
         <node concept="3cpWs8" id="1Nl9e7Dz2vp" role="3cqZAp">
           <node concept="3cpWsn" id="1Nl9e7Dz2vq" role="3cpWs9">
-            <property role="TrG5h" value="depthAndShowModules" />
-            <node concept="1LlUBW" id="1Nl9e7Dz2t8" role="1tU5fm">
-              <node concept="10Oyi0" id="1Nl9e7Dz2te" role="1Lm7xW" />
-              <node concept="10P_77" id="1Nl9e7Dz2td" role="1Lm7xW" />
-            </node>
+            <property role="TrG5h" value="configuration" />
             <node concept="2YIFZM" id="1Nl9e7Dz2vr" role="33vP2m">
               <ref role="37wK5l" node="1Nl9e7Dy7ny" resolve="showDialog" />
               <ref role="1Pybhc" node="1Nl9e7Dy5cx" resolve="ArchitectureDisplayParametersDialog" />
+              <node concept="2OqwBi" id="sRpFtPsXht" role="37wK5m">
+                <node concept="2WthIp" id="sRpFtPsXhw" role="2Oq$k0" />
+                <node concept="3gHZIF" id="sRpFtPsXhy" role="2OqNvi">
+                  <ref role="2WH_rO" node="1tkdAPw4CYF" resolve="node" />
+                </node>
+              </node>
+            </node>
+            <node concept="3uibUv" id="sRpFtPqFRM" role="1tU5fm">
+              <ref role="3uigEE" node="sRpFtPqp1S" resolve="Configuration" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbJ" id="sRpFtPpoqT" role="3cqZAp">
+          <node concept="3clFbS" id="sRpFtPpoqV" role="3clFbx">
+            <node concept="3cpWs6" id="sRpFtPppBt" role="3cqZAp" />
+          </node>
+          <node concept="3clFbC" id="sRpFtPpoXr" role="3clFbw">
+            <node concept="10Nm6u" id="sRpFtPppgb" role="3uHU7w" />
+            <node concept="37vLTw" id="sRpFtPpoym" role="3uHU7B">
+              <ref role="3cqZAo" node="1Nl9e7Dz2vq" resolve="depthAndShowModules" />
             </node>
           </node>
         </node>
@@ -458,27 +491,8 @@
                   <node concept="2YIFZM" id="6qVhvNsIThf" role="37vLTx">
                     <ref role="37wK5l" node="6qVhvNsIzDc" resolve="convertArchSpec" />
                     <ref role="1Pybhc" node="6qVhvNsIxrS" resolve="Arch2PlantUMLConverterUtils" />
-                    <node concept="2OqwBi" id="6qVhvNsITJc" role="37wK5m">
-                      <node concept="2WthIp" id="6qVhvNsITl1" role="2Oq$k0" />
-                      <node concept="3gHZIF" id="6qVhvNsIU2o" role="2OqNvi">
-                        <ref role="2WH_rO" node="1tkdAPw4CYF" resolve="node" />
-                      </node>
-                    </node>
-                    <node concept="1LFfDK" id="1Nl9e7Dz45H" role="37wK5m">
-                      <node concept="3cmrfG" id="1Nl9e7Dz4aB" role="1LF_Uc">
-                        <property role="3cmrfH" value="0" />
-                      </node>
-                      <node concept="37vLTw" id="1Nl9e7Dz38V" role="1LFl5Q">
-                        <ref role="3cqZAo" node="1Nl9e7Dz2vq" resolve="depthAndShowModules" />
-                      </node>
-                    </node>
-                    <node concept="1LFfDK" id="1Nl9e7Dz4ey" role="37wK5m">
-                      <node concept="37vLTw" id="1Nl9e7Dz4e$" role="1LFl5Q">
-                        <ref role="3cqZAo" node="1Nl9e7Dz2vq" resolve="depthAndShowModules" />
-                      </node>
-                      <node concept="3cmrfG" id="1Nl9e7Dz4sM" role="1LF_Uc">
-                        <property role="3cmrfH" value="1" />
-                      </node>
+                    <node concept="37vLTw" id="sRpFtPqGOX" role="37wK5m">
+                      <ref role="3cqZAo" node="1Nl9e7Dz2vq" resolve="configuration" />
                     </node>
                   </node>
                   <node concept="37vLTw" id="sRpFtPj4iu" role="37vLTJ">
@@ -496,7 +510,7 @@
               </node>
             </node>
             <node concept="liA8E" id="sRpFtPj9cV" role="2OqNvi">
-              <ref role="37wK5l" to="z1c3:~Project.getRepository()" resolve="getRepository" />
+              <ref role="37wK5l" to="z1c4:~Project.getRepository()" resolve="getRepository" />
             </node>
           </node>
         </node>
@@ -510,6 +524,9 @@
                 <ref role="2WH_rO" node="1tkdAPw5qGO" resolve="proj" />
               </node>
             </node>
+            <node concept="37vLTw" id="sRpFtPt6oT" role="37wK5m">
+              <ref role="3cqZAo" node="1Nl9e7Dz2vq" resolve="configuration" />
+            </node>
             <node concept="37vLTw" id="1Nl9e7Dz$1W" role="37wK5m">
               <ref role="3cqZAo" node="1tkdAPw5gL_" resolve="source" />
             </node>
@@ -549,7 +566,14 @@
   </node>
   <node concept="sEfby" id="1tkdAPw5hIG">
     <property role="TrG5h" value="PlantUML" />
-    <property role="2XNbzY" value="PlantUML Visualization of Architecture" />
+    <property role="2XNbzY" value="Visualization of Architecture" />
+    <node concept="2BZ0e9" id="sRpFtPqiV_" role="2XNbBz">
+      <property role="TrG5h" value="configuration" />
+      <node concept="3Tm6S6" id="sRpFtPqiVA" role="1B3o_S" />
+      <node concept="3uibUv" id="sRpFtPsYwq" role="1tU5fm">
+        <ref role="3uigEE" node="sRpFtPqp1S" resolve="Configuration" />
+      </node>
+    </node>
     <node concept="2BZ0e9" id="fm3v0WVVdz" role="2XNbBz">
       <property role="TrG5h" value="toolPanel" />
       <node concept="3Tm6S6" id="fm3v0WVVd$" role="1B3o_S" />
@@ -587,6 +611,19 @@
             </node>
           </node>
         </node>
+        <node concept="3clFbF" id="sRpFtPt0UZ" role="3cqZAp">
+          <node concept="37vLTI" id="sRpFtPt2Mu" role="3clFbG">
+            <node concept="37vLTw" id="sRpFtPt2W4" role="37vLTx">
+              <ref role="3cqZAo" node="sRpFtPsYlr" resolve="configuration" />
+            </node>
+            <node concept="2OqwBi" id="sRpFtPt14t" role="37vLTJ">
+              <node concept="2WthIp" id="sRpFtPt0UX" role="2Oq$k0" />
+              <node concept="2BZ7hE" id="sRpFtPt1d8" role="2OqNvi">
+                <ref role="2WH_rO" node="sRpFtPqiV_" resolve="configuration" />
+              </node>
+            </node>
+          </node>
+        </node>
         <node concept="3clFbF" id="fm3v0WQwts" role="3cqZAp">
           <node concept="2OqwBi" id="fm3v0WQwtq" role="3clFbG">
             <node concept="2WthIp" id="fm3v0WQwtr" role="2Oq$k0" />
@@ -599,6 +636,12 @@
           </node>
         </node>
       </node>
+      <node concept="37vLTG" id="sRpFtPsYlr" role="3clF46">
+        <property role="TrG5h" value="configuration" />
+        <node concept="3uibUv" id="sRpFtPsYq5" role="1tU5fm">
+          <ref role="3uigEE" node="sRpFtPqp1S" resolve="Configuration" />
+        </node>
+      </node>
       <node concept="37vLTG" id="1tkdAPw5$45" role="3clF46">
         <property role="TrG5h" value="bi" />
         <node concept="3uibUv" id="1tkdAPw5$44" role="1tU5fm">
@@ -675,18 +718,9 @@
             <node concept="liA8E" id="fm3v0X2N7N" role="2OqNvi">
               <ref role="37wK5l" to="z60i:~Container.setLayout(java.awt.LayoutManager)" resolve="setLayout" />
               <node concept="2ShNRf" id="fm3v0X2NgF" role="37wK5m">
-                <node concept="1pGfFk" id="fm3v0X2Okx" role="2ShVmc">
-                  <ref role="37wK5l" to="dxuu:~BoxLayout.&lt;init&gt;(java.awt.Container,int)" resolve="BoxLayout" />
-                  <node concept="2OqwBi" id="fm3v0X2Ord" role="37wK5m">
-                    <node concept="2WthIp" id="fm3v0X2Org" role="2Oq$k0" />
-                    <node concept="2BZ7hE" id="fm3v0X2Ori" role="2OqNvi">
-                      <ref role="2WH_rO" node="fm3v0WVVdz" resolve="toolPanel" />
-                    </node>
-                  </node>
-                  <node concept="10M0yZ" id="fm3v0X2OLg" role="37wK5m">
-                    <ref role="3cqZAo" to="dxuu:~BoxLayout.PAGE_AXIS" resolve="PAGE_AXIS" />
-                    <ref role="1PxDUh" to="dxuu:~BoxLayout" resolve="BoxLayout" />
-                  </node>
+                <node concept="1pGfFk" id="sRpFtPpAjk" role="2ShVmc">
+                  <property role="373rjd" value="true" />
+                  <ref role="37wK5l" to="z60i:~BorderLayout.&lt;init&gt;()" resolve="BorderLayout" />
                 </node>
               </node>
             </node>
@@ -707,6 +741,23 @@
             </node>
           </node>
         </node>
+        <node concept="3clFbF" id="sRpFtPm4F2" role="3cqZAp">
+          <node concept="2OqwBi" id="sRpFtPm6op" role="3clFbG">
+            <node concept="2OqwBi" id="sRpFtPm5cs" role="2Oq$k0">
+              <node concept="2WthIp" id="sRpFtPm4F0" role="2Oq$k0" />
+              <node concept="2BZ7hE" id="sRpFtPm5MY" role="2OqNvi">
+                <ref role="2WH_rO" node="1tkdAPw5hO$" resolve="imagePanel" />
+              </node>
+            </node>
+            <node concept="liA8E" id="sRpFtPmgTY" role="2OqNvi">
+              <ref role="37wK5l" to="dxuu:~JComponent.setBackground(java.awt.Color)" resolve="setBackground" />
+              <node concept="10M0yZ" id="sRpFtPmgX_" role="37wK5m">
+                <ref role="3cqZAo" to="z60i:~Color.WHITE" resolve="WHITE" />
+                <ref role="1PxDUh" to="z60i:~Color" resolve="Color" />
+              </node>
+            </node>
+          </node>
+        </node>
         <node concept="3clFbF" id="fm3v0WPYm8" role="3cqZAp">
           <node concept="37vLTI" id="fm3v0WPYPR" role="3clFbG">
             <node concept="2ShNRf" id="fm3v0WPYY6" role="37vLTx">
@@ -728,38 +779,10 @@
             </node>
           </node>
         </node>
-        <node concept="1X3_iC" id="fm3v0X29_5" role="lGtFl">
-          <property role="3V$3am" value="statement" />
-          <property role="3V$3ak" value="f3061a53-9226-4cc5-a443-f952ceaf5816/1068580123136/1068581517665" />
-          <node concept="3clFbF" id="fm3v0WW5nj" role="8Wnug">
-            <node concept="2OqwBi" id="fm3v0WW6nK" role="3clFbG">
-              <node concept="2OqwBi" id="fm3v0WW5J7" role="2Oq$k0">
-                <node concept="2WthIp" id="fm3v0WW5nh" role="2Oq$k0" />
-                <node concept="2BZ7hE" id="fm3v0WW5T$" role="2OqNvi">
-                  <ref role="2WH_rO" node="fm3v0WPUzP" resolve="scroll" />
-                </node>
-              </node>
-              <node concept="liA8E" id="fm3v0WW7kk" role="2OqNvi">
-                <ref role="37wK5l" to="dxuu:~JComponent.setPreferredSize(java.awt.Dimension)" resolve="setPreferredSize" />
-                <node concept="2ShNRf" id="fm3v0WW7Ze" role="37wK5m">
-                  <node concept="1pGfFk" id="fm3v0WW8z7" role="2ShVmc">
-                    <ref role="37wK5l" to="z60i:~Dimension.&lt;init&gt;(int,int)" resolve="Dimension" />
-                    <node concept="3cmrfG" id="fm3v0WW8$l" role="37wK5m">
-                      <property role="3cmrfH" value="1000" />
-                    </node>
-                    <node concept="3cmrfG" id="fm3v0WW8HZ" role="37wK5m">
-                      <property role="3cmrfH" value="300" />
-                    </node>
-                  </node>
-                </node>
-              </node>
-            </node>
-          </node>
-        </node>
         <node concept="3clFbH" id="fm3v0WW7EF" role="3cqZAp" />
         <node concept="3cpWs8" id="fm3v0WVdU4" role="3cqZAp">
           <node concept="3cpWsn" id="fm3v0WVdU5" role="3cpWs9">
-            <property role="TrG5h" value="buttons" />
+            <property role="TrG5h" value="buttonsPanel" />
             <node concept="3uibUv" id="fm3v0WVdU6" role="1tU5fm">
               <ref role="3uigEE" to="dxuu:~JPanel" resolve="JPanel" />
             </node>
@@ -770,6 +793,26 @@
             </node>
           </node>
         </node>
+        <node concept="3clFbF" id="sRpFtPpBqM" role="3cqZAp">
+          <node concept="2OqwBi" id="sRpFtPpD0L" role="3clFbG">
+            <node concept="37vLTw" id="sRpFtPpBqK" role="2Oq$k0">
+              <ref role="3cqZAo" node="fm3v0WVdU5" resolve="buttonsPanel" />
+            </node>
+            <node concept="liA8E" id="sRpFtPpE_C" role="2OqNvi">
+              <ref role="37wK5l" to="z60i:~Container.setLayout(java.awt.LayoutManager)" resolve="setLayout" />
+              <node concept="2ShNRf" id="sRpFtPpEHw" role="37wK5m">
+                <node concept="1pGfFk" id="sRpFtPpF8a" role="2ShVmc">
+                  <property role="373rjd" value="true" />
+                  <ref role="37wK5l" to="z60i:~FlowLayout.&lt;init&gt;(int)" resolve="FlowLayout" />
+                  <node concept="10M0yZ" id="sRpFtPpFdZ" role="37wK5m">
+                    <ref role="3cqZAo" to="z60i:~FlowLayout.LEFT" resolve="LEFT" />
+                    <ref role="1PxDUh" to="z60i:~FlowLayout" resolve="FlowLayout" />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
         <node concept="3clFbF" id="fm3v0WVmVI" role="3cqZAp">
           <node concept="2OqwBi" id="fm3v0WVn_A" role="3clFbG">
             <node concept="37vLTw" id="fm3v0WVmVG" role="2Oq$k0">
@@ -988,6 +1031,83 @@
             </node>
           </node>
         </node>
+        <node concept="3cpWs8" id="sRpFtPpRku" role="3cqZAp">
+          <node concept="3cpWsn" id="sRpFtPpRkv" role="3cpWs9">
+            <property role="TrG5h" value="updateButton" />
+            <node concept="3uibUv" id="sRpFtPpRkw" role="1tU5fm">
+              <ref role="3uigEE" to="dxuu:~JButton" resolve="JButton" />
+            </node>
+            <node concept="2ShNRf" id="sRpFtPpRQR" role="33vP2m">
+              <node concept="1pGfFk" id="sRpFtPpScF" role="2ShVmc">
+                <property role="373rjd" value="true" />
+                <ref role="37wK5l" to="dxuu:~JButton.&lt;init&gt;(java.lang.String)" resolve="JButton" />
+                <node concept="Xl_RD" id="sRpFtPpSdb" role="37wK5m">
+                  <property role="Xl_RC" value="Refresh" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbF" id="sRpFtPpTFl" role="3cqZAp">
+          <node concept="2OqwBi" id="sRpFtPpU$w" role="3clFbG">
+            <node concept="37vLTw" id="sRpFtPpTFj" role="2Oq$k0">
+              <ref role="3cqZAo" node="sRpFtPpRkv" resolve="updateButton" />
+            </node>
+            <node concept="liA8E" id="sRpFtPpWA5" role="2OqNvi">
+              <ref role="37wK5l" to="dxuu:~AbstractButton.addActionListener(java.awt.event.ActionListener)" resolve="addActionListener" />
+              <node concept="2ShNRf" id="sRpFtPpWAV" role="37wK5m">
+                <node concept="YeOm9" id="sRpFtPpZ6X" role="2ShVmc">
+                  <node concept="1Y3b0j" id="sRpFtPpZ70" role="YeSDq">
+                    <property role="2bfB8j" value="true" />
+                    <property role="373rjd" value="true" />
+                    <ref role="1Y3XeK" to="hyam:~ActionListener" resolve="ActionListener" />
+                    <ref role="37wK5l" to="wyt6:~Object.&lt;init&gt;()" />
+                    <node concept="3Tm1VV" id="sRpFtPpZ71" role="1B3o_S" />
+                    <node concept="3clFb_" id="sRpFtPpZ7f" role="jymVt">
+                      <property role="TrG5h" value="actionPerformed" />
+                      <node concept="3Tm1VV" id="sRpFtPpZ7g" role="1B3o_S" />
+                      <node concept="3cqZAl" id="sRpFtPpZ7i" role="3clF45" />
+                      <node concept="37vLTG" id="sRpFtPpZ7j" role="3clF46">
+                        <property role="TrG5h" value="p1" />
+                        <node concept="3uibUv" id="sRpFtPpZ7k" role="1tU5fm">
+                          <ref role="3uigEE" to="hyam:~ActionEvent" resolve="ActionEvent" />
+                        </node>
+                      </node>
+                      <node concept="3clFbS" id="sRpFtPpZ7l" role="3clF47">
+                        <node concept="3clFbF" id="sRpFtPq0Fh" role="3cqZAp">
+                          <node concept="2OqwBi" id="sRpFtPq0Fi" role="3clFbG">
+                            <node concept="2WthIp" id="sRpFtPq0Fj" role="2Oq$k0">
+                              <ref role="32nkFo" node="1tkdAPw5hIG" resolve="PlantUML" />
+                            </node>
+                            <node concept="2XshWL" id="sRpFtPtf83" role="2OqNvi">
+                              <ref role="2WH_rO" node="sRpFtPte1W" resolve="refreshFromOldConfiguration" />
+                            </node>
+                          </node>
+                        </node>
+                      </node>
+                      <node concept="2AHcQZ" id="sRpFtPpZ7n" role="2AJF6D">
+                        <ref role="2AI5Lk" to="wyt6:~Override" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbF" id="sRpFtPq3mO" role="3cqZAp">
+          <node concept="2OqwBi" id="sRpFtPq4ns" role="3clFbG">
+            <node concept="37vLTw" id="sRpFtPq3mM" role="2Oq$k0">
+              <ref role="3cqZAo" node="fm3v0WVdU5" resolve="buttonsPanel" />
+            </node>
+            <node concept="liA8E" id="sRpFtPq5wn" role="2OqNvi">
+              <ref role="37wK5l" to="z60i:~Container.add(java.awt.Component)" resolve="add" />
+              <node concept="37vLTw" id="sRpFtPq5D5" role="37wK5m">
+                <ref role="3cqZAo" node="sRpFtPpRkv" resolve="updateButton" />
+              </node>
+            </node>
+          </node>
+        </node>
         <node concept="3clFbH" id="fm3v0WW0AY" role="3cqZAp" />
         <node concept="3clFbF" id="fm3v0WVfxA" role="3cqZAp">
           <node concept="2OqwBi" id="fm3v0WVg_z" role="3clFbG">
@@ -998,10 +1118,14 @@
               </node>
             </node>
             <node concept="liA8E" id="fm3v0WVhQq" role="2OqNvi">
-              <ref role="37wK5l" to="z60i:~Container.add(java.awt.Component)" resolve="add" />
+              <ref role="37wK5l" to="z60i:~Container.add(java.awt.Component,java.lang.Object)" resolve="add" />
               <node concept="37vLTw" id="fm3v0WViRb" role="37wK5m">
                 <ref role="3cqZAo" node="fm3v0WVdU5" resolve="buttons" />
               </node>
+              <node concept="10M0yZ" id="sRpFtPpFx1" role="37wK5m">
+                <ref role="3cqZAo" to="z60i:~BorderLayout.NORTH" resolve="NORTH" />
+                <ref role="1PxDUh" to="z60i:~BorderLayout" resolve="BorderLayout" />
+              </node>
             </node>
           </node>
         </node>
@@ -1014,13 +1138,17 @@
               </node>
             </node>
             <node concept="liA8E" id="fm3v0WW0lj" role="2OqNvi">
-              <ref role="37wK5l" to="z60i:~Container.add(java.awt.Component)" resolve="add" />
+              <ref role="37wK5l" to="z60i:~Container.add(java.awt.Component,java.lang.Object)" resolve="add" />
               <node concept="2OqwBi" id="fm3v0WW0nb" role="37wK5m">
                 <node concept="2WthIp" id="fm3v0WW0ne" role="2Oq$k0" />
                 <node concept="2BZ7hE" id="fm3v0WW0ng" role="2OqNvi">
                   <ref role="2WH_rO" node="fm3v0WPUzP" resolve="scroll" />
                 </node>
               </node>
+              <node concept="10M0yZ" id="sRpFtPpG0E" role="37wK5m">
+                <ref role="3cqZAo" to="z60i:~BorderLayout.SOUTH" resolve="SOUTH" />
+                <ref role="1PxDUh" to="z60i:~BorderLayout" resolve="BorderLayout" />
+              </node>
             </node>
           </node>
         </node>
@@ -1445,6 +1573,163 @@
       </node>
       <node concept="3Tm1VV" id="sRpFtPk6VM" role="1B3o_S" />
     </node>
+    <node concept="2XrIbr" id="sRpFtPte1W" role="2XNbBy">
+      <property role="TrG5h" value="refreshFromOldConfiguration" />
+      <node concept="3cqZAl" id="sRpFtPteUc" role="3clF45" />
+      <node concept="3clFbS" id="sRpFtPte1Y" role="3clF47">
+        <node concept="3cpWs8" id="sRpFtPtrJW" role="3cqZAp">
+          <node concept="3cpWsn" id="sRpFtPtrJX" role="3cpWs9">
+            <property role="TrG5h" value="project" />
+            <node concept="3uibUv" id="sRpFtPtrJY" role="1tU5fm">
+              <ref role="3uigEE" to="z1c3:~MPSProject" resolve="MPSProject" />
+            </node>
+            <node concept="2OqwBi" id="sRpFtPtvlD" role="33vP2m">
+              <node concept="10M0yZ" id="sRpFtPtv22" role="2Oq$k0">
+                <ref role="3cqZAo" to="qq03:~MPSCommonDataKeys.MPS_PROJECT" resolve="MPS_PROJECT" />
+                <ref role="1PxDUh" to="3s15:~MPSDataKeys" resolve="MPSDataKeys" />
+              </node>
+              <node concept="liA8E" id="sRpFtPtvVp" role="2OqNvi">
+                <ref role="37wK5l" to="qkt:~DataKey.getData(com.intellij.openapi.actionSystem.DataContext)" resolve="getData" />
+                <node concept="2OqwBi" id="sRpFtPtz$S" role="37wK5m">
+                  <node concept="2YIFZM" id="sRpFtPtzmV" role="2Oq$k0">
+                    <ref role="37wK5l" to="ddhc:~DataManager.getInstance()" resolve="getInstance" />
+                    <ref role="1Pybhc" to="ddhc:~DataManager" resolve="DataManager" />
+                  </node>
+                  <node concept="liA8E" id="sRpFtPt$Ki" role="2OqNvi">
+                    <ref role="37wK5l" to="ddhc:~DataManager.getDataContext(java.awt.Component)" resolve="getDataContext" />
+                    <node concept="2OqwBi" id="sRpFtPt_hZ" role="37wK5m">
+                      <node concept="2WthIp" id="sRpFtPt_1r" role="2Oq$k0" />
+                      <node concept="liA8E" id="sRpFtPt_DM" role="2OqNvi">
+                        <ref role="37wK5l" to="71xd:~BaseTool.getComponent()" resolve="getComponent" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="sRpFtPubau" role="3cqZAp" />
+        <node concept="3cpWs8" id="sRpFtPtg6T" role="3cqZAp">
+          <node concept="3cpWsn" id="sRpFtPtg6W" role="3cpWs9">
+            <property role="TrG5h" value="source" />
+            <node concept="17QB3L" id="sRpFtPtg6S" role="1tU5fm" />
+            <node concept="10Nm6u" id="sRpFtPtgvd" role="33vP2m" />
+          </node>
+        </node>
+        <node concept="1QHqEK" id="sRpFtPubNF" role="3cqZAp">
+          <node concept="1QHqEC" id="sRpFtPubNH" role="1QHqEI">
+            <node concept="3clFbS" id="sRpFtPubNJ" role="1bW5cS">
+              <node concept="Jncv_" id="sRpFtPtgpN" role="3cqZAp">
+                <ref role="JncvD" to="ryx8:6MUZd5Uj9vA" resolve="ArchSpecification" />
+                <node concept="2OqwBi" id="sRpFtPthje" role="JncvB">
+                  <node concept="2OqwBi" id="sRpFtPtgxP" role="2Oq$k0">
+                    <node concept="2WthIp" id="sRpFtPtgxS" role="2Oq$k0" />
+                    <node concept="2BZ7hE" id="sRpFtPtgxU" role="2OqNvi">
+                      <ref role="2WH_rO" node="sRpFtPqiV_" resolve="configuration" />
+                    </node>
+                  </node>
+                  <node concept="2sxana" id="sRpFtPti2e" role="2OqNvi">
+                    <ref role="2sxfKC" node="sRpFtPqp2m" resolve="node" />
+                  </node>
+                </node>
+                <node concept="3clFbS" id="sRpFtPtgpR" role="Jncv$">
+                  <node concept="3clFbF" id="sRpFtPtiXi" role="3cqZAp">
+                    <node concept="37vLTI" id="sRpFtPtjXF" role="3clFbG">
+                      <node concept="37vLTw" id="sRpFtPtiXh" role="37vLTJ">
+                        <ref role="3cqZAo" node="sRpFtPtg6W" resolve="source" />
+                      </node>
+                      <node concept="2YIFZM" id="sRpFtPtlu2" role="37vLTx">
+                        <ref role="37wK5l" node="6qVhvNsIzDc" resolve="convertArchSpec" />
+                        <ref role="1Pybhc" node="6qVhvNsIxrS" resolve="Arch2PlantUMLConverterUtils" />
+                        <node concept="2OqwBi" id="sRpFtPtmuO" role="37wK5m">
+                          <node concept="2WthIp" id="sRpFtPtmiL" role="2Oq$k0" />
+                          <node concept="2BZ7hE" id="sRpFtPtmEX" role="2OqNvi">
+                            <ref role="2WH_rO" node="sRpFtPqiV_" resolve="configuration" />
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                </node>
+                <node concept="JncvC" id="sRpFtPtgpT" role="JncvA">
+                  <property role="TrG5h" value="specification" />
+                  <node concept="2jxLKc" id="sRpFtPtgpU" role="1tU5fm" />
+                </node>
+              </node>
+              <node concept="Jncv_" id="sRpFtPtkvj" role="3cqZAp">
+                <ref role="JncvD" to="ryx8:6MUZd5Uj9vB" resolve="ComponentDefinition" />
+                <node concept="3clFbS" id="sRpFtPtkvn" role="Jncv$">
+                  <node concept="3clFbF" id="sRpFtPtnfH" role="3cqZAp">
+                    <node concept="37vLTI" id="sRpFtPtorM" role="3clFbG">
+                      <node concept="37vLTw" id="sRpFtPtnfG" role="37vLTJ">
+                        <ref role="3cqZAo" node="sRpFtPtg6W" resolve="source" />
+                      </node>
+                      <node concept="2YIFZM" id="sRpFtPtoV_" role="37vLTx">
+                        <ref role="37wK5l" node="1Nl9e7DzK4M" resolve="convertComponentDefinition" />
+                        <ref role="1Pybhc" node="6qVhvNsIxrS" resolve="Arch2PlantUMLConverterUtils" />
+                        <node concept="2OqwBi" id="sRpFtPtoVA" role="37wK5m">
+                          <node concept="2WthIp" id="sRpFtPtoVB" role="2Oq$k0" />
+                          <node concept="2BZ7hE" id="sRpFtPtoVC" role="2OqNvi">
+                            <ref role="2WH_rO" node="sRpFtPqiV_" resolve="configuration" />
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                </node>
+                <node concept="JncvC" id="sRpFtPtkvp" role="JncvA">
+                  <property role="TrG5h" value="componentDefinition" />
+                  <node concept="2jxLKc" id="sRpFtPtkvq" role="1tU5fm" />
+                </node>
+                <node concept="2OqwBi" id="sRpFtPtk$H" role="JncvB">
+                  <node concept="2OqwBi" id="sRpFtPtk$I" role="2Oq$k0">
+                    <node concept="2WthIp" id="sRpFtPtk$J" role="2Oq$k0" />
+                    <node concept="2BZ7hE" id="sRpFtPtk$K" role="2OqNvi">
+                      <ref role="2WH_rO" node="sRpFtPqiV_" resolve="configuration" />
+                    </node>
+                  </node>
+                  <node concept="2sxana" id="sRpFtPtk$L" role="2OqNvi">
+                    <ref role="2sxfKC" node="sRpFtPqp2m" resolve="node" />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+          <node concept="2OqwBi" id="sRpFtPucFL" role="ukAjM">
+            <node concept="37vLTw" id="sRpFtPuc0v" role="2Oq$k0">
+              <ref role="3cqZAo" node="sRpFtPtrJX" resolve="project" />
+            </node>
+            <node concept="liA8E" id="sRpFtPudry" role="2OqNvi">
+              <ref role="37wK5l" to="z1c4:~Project.getRepository()" resolve="getRepository" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbF" id="sRpFtPtptc" role="3cqZAp">
+          <node concept="2YIFZM" id="sRpFtPtptd" role="3clFbG">
+            <ref role="37wK5l" node="1Nl9e7Dzqh4" resolve="displayPlantUml" />
+            <ref role="1Pybhc" node="1Nl9e7Dzq0d" resolve="PlantUMLToolStarter" />
+            <node concept="2YIFZM" id="sRpFtPtBHB" role="37wK5m">
+              <ref role="37wK5l" to="alof:~ProjectHelper.toIdeaProject(jetbrains.mps.project.Project)" resolve="toIdeaProject" />
+              <ref role="1Pybhc" to="alof:~ProjectHelper" resolve="ProjectHelper" />
+              <node concept="37vLTw" id="sRpFtPtBR5" role="37wK5m">
+                <ref role="3cqZAo" node="sRpFtPtrJX" resolve="project" />
+              </node>
+            </node>
+            <node concept="2OqwBi" id="sRpFtPtpDa" role="37wK5m">
+              <node concept="2WthIp" id="sRpFtPtpDd" role="2Oq$k0" />
+              <node concept="2BZ7hE" id="sRpFtPtpDf" role="2OqNvi">
+                <ref role="2WH_rO" node="sRpFtPqiV_" resolve="configuration" />
+              </node>
+            </node>
+            <node concept="37vLTw" id="sRpFtPtpti" role="37wK5m">
+              <ref role="3cqZAo" node="sRpFtPtg6W" resolve="source" />
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="3Tm1VV" id="sRpFtPteIr" role="1B3o_S" />
+    </node>
   </node>
   <node concept="tC5Ba" id="1tkdAPw6lGy">
     <property role="TrG5h" value="PlantUMLGroup" />
@@ -1530,8 +1815,13 @@
             <node concept="2OqwBi" id="1Nl9e7DxHaj" role="33vP2m">
               <node concept="2OqwBi" id="1Nl9e7DxDxj" role="2Oq$k0">
                 <node concept="2OqwBi" id="1Nl9e7DxBi1" role="2Oq$k0">
-                  <node concept="37vLTw" id="1Nl9e7DxBi2" role="2Oq$k0">
-                    <ref role="3cqZAo" node="6qVhvNsIA38" resolve="as" />
+                  <node concept="2OqwBi" id="sRpFtPqUE$" role="2Oq$k0">
+                    <node concept="37vLTw" id="1Nl9e7DxBi2" role="2Oq$k0">
+                      <ref role="3cqZAo" node="sRpFtPqJIZ" resolve="configuration" />
+                    </node>
+                    <node concept="2sxana" id="sRpFtPqWel" role="2OqNvi">
+                      <ref role="2sxfKC" node="sRpFtPqp2m" resolve="node" />
+                    </node>
                   </node>
                   <node concept="3Tsc0h" id="1Nl9e7DxBi3" role="2OqNvi">
                     <ref role="3TtcxE" to="ryx8:6MUZd5Uj9vF" resolve="content" />
@@ -1554,30 +1844,22 @@
             <node concept="37vLTw" id="1Nl9e7DxV3x" role="37wK5m">
               <ref role="3cqZAo" node="1Nl9e7DxBi0" resolve="content" />
             </node>
-            <node concept="37vLTw" id="1Nl9e7DxV3y" role="37wK5m">
-              <ref role="3cqZAo" node="1Nl9e7DxJYr" resolve="depth" />
-            </node>
-            <node concept="37vLTw" id="1Nl9e7DxV3z" role="37wK5m">
-              <ref role="3cqZAo" node="1Nl9e7DxKSq" resolve="displayModules" />
+            <node concept="37vLTw" id="sRpFtPr3$Y" role="37wK5m">
+              <ref role="3cqZAo" node="sRpFtPqJIZ" resolve="configuration" />
             </node>
           </node>
         </node>
       </node>
       <node concept="17QB3L" id="6qVhvNsIzD1" role="3clF45" />
-      <node concept="37vLTG" id="6qVhvNsIA38" role="3clF46">
-        <property role="TrG5h" value="as" />
-        <node concept="3Tqbb2" id="6qVhvNsIA37" role="1tU5fm">
-          <ref role="ehGHo" to="ryx8:6MUZd5Uj9vA" resolve="ArchSpecification" />
+      <node concept="37vLTG" id="sRpFtPqJIZ" role="3clF46">
+        <property role="TrG5h" value="configuration" />
+        <node concept="3uibUv" id="sRpFtPqKyd" role="1tU5fm">
+          <ref role="3uigEE" node="sRpFtPqp1S" resolve="Configuration" />
+          <node concept="3Tqbb2" id="sRpFtPrgHb" role="11_B2D">
+            <ref role="ehGHo" to="ryx8:6MUZd5Uj9vA" resolve="ArchSpecification" />
+          </node>
         </node>
       </node>
-      <node concept="37vLTG" id="1Nl9e7DxJYr" role="3clF46">
-        <property role="TrG5h" value="depth" />
-        <node concept="10Oyi0" id="1Nl9e7DxKth" role="1tU5fm" />
-      </node>
-      <node concept="37vLTG" id="1Nl9e7DxKSq" role="3clF46">
-        <property role="TrG5h" value="displayModules" />
-        <node concept="10P_77" id="1Nl9e7DxNQa" role="1tU5fm" />
-      </node>
       <node concept="3Tm1VV" id="58jxdNStmPY" role="1B3o_S" />
     </node>
     <node concept="2tJIrI" id="1Nl9e7DzLfj" role="jymVt" />
@@ -1605,8 +1887,13 @@
               <ref role="3cqZAo" node="1Nl9e7DzK4P" resolve="comp" />
             </node>
             <node concept="TSZUe" id="1Nl9e7D_jPe" role="2OqNvi">
-              <node concept="37vLTw" id="1Nl9e7D_kBx" role="25WWJ7">
-                <ref role="3cqZAo" node="1Nl9e7DzK55" resolve="cd" />
+              <node concept="2OqwBi" id="sRpFtPrrt$" role="25WWJ7">
+                <node concept="37vLTw" id="1Nl9e7D_kBx" role="2Oq$k0">
+                  <ref role="3cqZAo" node="sRpFtPrbbb" resolve="configuration" />
+                </node>
+                <node concept="2sxana" id="sRpFtPrthh" role="2OqNvi">
+                  <ref role="2sxfKC" node="sRpFtPqp2m" resolve="node" />
+                </node>
               </node>
             </node>
           </node>
@@ -1618,31 +1905,23 @@
             <node concept="37vLTw" id="1Nl9e7DzK51" role="37wK5m">
               <ref role="3cqZAo" node="1Nl9e7DzK4P" resolve="comp" />
             </node>
-            <node concept="37vLTw" id="1Nl9e7DzK52" role="37wK5m">
-              <ref role="3cqZAo" node="1Nl9e7DzK57" resolve="depth" />
-            </node>
             <node concept="37vLTw" id="1Nl9e7DzK53" role="37wK5m">
-              <ref role="3cqZAo" node="1Nl9e7DzK59" resolve="displayModules" />
+              <ref role="3cqZAo" node="sRpFtPrbbb" resolve="configuration" />
             </node>
           </node>
         </node>
       </node>
       <node concept="17QB3L" id="1Nl9e7DzK54" role="3clF45" />
-      <node concept="37vLTG" id="1Nl9e7DzK55" role="3clF46">
-        <property role="TrG5h" value="cd" />
-        <node concept="3Tqbb2" id="1Nl9e7DzK56" role="1tU5fm">
-          <ref role="ehGHo" to="ryx8:6MUZd5Uj9vB" resolve="ComponentDefinition" />
+      <node concept="3Tm1VV" id="1Nl9e7DzK5b" role="1B3o_S" />
+      <node concept="37vLTG" id="sRpFtPrbbb" role="3clF46">
+        <property role="TrG5h" value="configuration" />
+        <node concept="3uibUv" id="sRpFtPrbba" role="1tU5fm">
+          <ref role="3uigEE" node="sRpFtPqp1S" resolve="Configuration" />
+          <node concept="3Tqbb2" id="sRpFtPrnD$" role="11_B2D">
+            <ref role="ehGHo" to="ryx8:6MUZd5Uj9vB" resolve="ComponentDefinition" />
+          </node>
         </node>
       </node>
-      <node concept="37vLTG" id="1Nl9e7DzK57" role="3clF46">
-        <property role="TrG5h" value="depth" />
-        <node concept="10Oyi0" id="1Nl9e7DzK58" role="1tU5fm" />
-      </node>
-      <node concept="37vLTG" id="1Nl9e7DzK59" role="3clF46">
-        <property role="TrG5h" value="displayModules" />
-        <node concept="10P_77" id="1Nl9e7DzK5a" role="1tU5fm" />
-      </node>
-      <node concept="3Tm1VV" id="1Nl9e7DzK5b" role="1B3o_S" />
     </node>
     <node concept="2tJIrI" id="1Nl9e7DxWgi" role="jymVt" />
     <node concept="2YIFZL" id="1Nl9e7DxV3u" role="jymVt">
@@ -1655,13 +1934,11 @@
           <ref role="2I9WkF" to="ryx8:6MUZd5Uj9vB" resolve="ComponentDefinition" />
         </node>
       </node>
-      <node concept="37vLTG" id="1Nl9e7DxV3l" role="3clF46">
-        <property role="TrG5h" value="depth" />
-        <node concept="10Oyi0" id="1Nl9e7DxV3m" role="1tU5fm" />
-      </node>
-      <node concept="37vLTG" id="1Nl9e7DxV3n" role="3clF46">
-        <property role="TrG5h" value="displayModules" />
-        <node concept="10P_77" id="1Nl9e7DxV3o" role="1tU5fm" />
+      <node concept="37vLTG" id="sRpFtPr$04" role="3clF46">
+        <property role="TrG5h" value="configuration" />
+        <node concept="3uibUv" id="sRpFtPr_P3" role="1tU5fm">
+          <ref role="3uigEE" node="sRpFtPqp1S" resolve="Configuration" />
+        </node>
       </node>
       <node concept="3clFbS" id="1Nl9e7DxV2c" role="3clF47">
         <node concept="3cpWs8" id="1Nl9e7DxV2d" role="3cqZAp">
@@ -1807,11 +2084,8 @@
                     <node concept="Xl_RD" id="1Nl9e7DxV2R" role="37wK5m">
                       <property role="Xl_RC" value="" />
                     </node>
-                    <node concept="37vLTw" id="1Nl9e7DxV3p" role="37wK5m">
-                      <ref role="3cqZAo" node="1Nl9e7DxV3l" resolve="depth" />
-                    </node>
-                    <node concept="37vLTw" id="1Nl9e7DxV3r" role="37wK5m">
-                      <ref role="3cqZAo" node="1Nl9e7DxV3n" resolve="displayModules" />
+                    <node concept="37vLTw" id="sRpFtPrFJH" role="37wK5m">
+                      <ref role="3cqZAo" node="sRpFtPr$04" resolve="configuration" />
                     </node>
                   </node>
                 </node>
@@ -1893,8 +2167,13 @@
             <node concept="3cmrfG" id="1Nl9e7DwVIS" role="3uHU7w">
               <property role="3cmrfH" value="0" />
             </node>
-            <node concept="37vLTw" id="1Nl9e7DwTzR" role="3uHU7B">
-              <ref role="3cqZAo" node="1Nl9e7DwIEs" resolve="depth" />
+            <node concept="2OqwBi" id="sRpFtPrUUN" role="3uHU7B">
+              <node concept="37vLTw" id="1Nl9e7DwTzR" role="2Oq$k0">
+                <ref role="3cqZAo" node="sRpFtPrLOf" resolve="configuration" />
+              </node>
+              <node concept="2sxana" id="sRpFtPrXlz" role="2OqNvi">
+                <ref role="2sxfKC" node="sRpFtPqppq" resolve="depth" />
+              </node>
             </node>
           </node>
         </node>
@@ -1984,6 +2263,55 @@
                 <ref role="2Gs0qQ" node="6qVhvNsIKyB" resolve="c" />
               </node>
               <node concept="3clFbS" id="6qVhvNsJ2kG" role="Jncv$">
+                <node concept="3cpWs8" id="sRpFtPs7$e" role="3cqZAp">
+                  <node concept="3cpWsn" id="sRpFtPs7$f" role="3cpWs9">
+                    <property role="TrG5h" value="newConfig" />
+                    <node concept="3uibUv" id="sRpFtPs7$g" role="1tU5fm">
+                      <ref role="3uigEE" node="sRpFtPqp1S" resolve="Configuration" />
+                    </node>
+                    <node concept="2ry78W" id="sRpFtPsbsG" role="33vP2m">
+                      <ref role="2ryb1Q" node="sRpFtPqp1S" resolve="Configuration" />
+                      <node concept="2r$n1x" id="sRpFtPsdcc" role="2r_Bvh">
+                        <ref role="2r$qp6" node="sRpFtPqp2m" resolve="node" />
+                        <node concept="2OqwBi" id="sRpFtPsgxq" role="2r_lH1">
+                          <node concept="37vLTw" id="sRpFtPsf3k" role="2Oq$k0">
+                            <ref role="3cqZAo" node="sRpFtPrLOf" resolve="configuration" />
+                          </node>
+                          <node concept="2sxana" id="sRpFtPsiX3" role="2OqNvi">
+                            <ref role="2sxfKC" node="sRpFtPqp2m" resolve="node" />
+                          </node>
+                        </node>
+                      </node>
+                      <node concept="2r$n1x" id="sRpFtPskVk" role="2r_Bvh">
+                        <ref role="2r$qp6" node="sRpFtPqppq" resolve="depth" />
+                        <node concept="3cpWsd" id="sRpFtPssRX" role="2r_lH1">
+                          <node concept="3cmrfG" id="sRpFtPssZC" role="3uHU7w">
+                            <property role="3cmrfH" value="1" />
+                          </node>
+                          <node concept="2OqwBi" id="sRpFtPsq33" role="3uHU7B">
+                            <node concept="37vLTw" id="sRpFtPsp8E" role="2Oq$k0">
+                              <ref role="3cqZAo" node="sRpFtPrLOf" resolve="configuration" />
+                            </node>
+                            <node concept="2sxana" id="sRpFtPsrNO" role="2OqNvi">
+                              <ref role="2sxfKC" node="sRpFtPqppq" resolve="depth" />
+                            </node>
+                          </node>
+                        </node>
+                      </node>
+                      <node concept="2r$n1x" id="sRpFtPsuPK" role="2r_Bvh">
+                        <ref role="2r$qp6" node="sRpFtPqpZu" resolve="displayModules" />
+                        <node concept="2OqwBi" id="sRpFtPszVP" role="2r_lH1">
+                          <node concept="37vLTw" id="sRpFtPsyV0" role="2Oq$k0">
+                            <ref role="3cqZAo" node="sRpFtPrLOf" resolve="configuration" />
+                          </node>
+                          <node concept="2sxana" id="sRpFtPs_V$" role="2OqNvi">
+                            <ref role="2sxfKC" node="sRpFtPqpZu" resolve="displayModules" />
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                </node>
                 <node concept="3clFbF" id="6qVhvNsJ2kH" role="3cqZAp">
                   <node concept="1rXfSq" id="6qVhvNsJ2kI" role="3clFbG">
                     <ref role="37wK5l" node="6qVhvNsIIbd" resolve="appendInfoForComponentDefinition" />
@@ -2002,16 +2330,8 @@
                     <node concept="37vLTw" id="58jxdNSsRwW" role="37wK5m">
                       <ref role="3cqZAo" node="58jxdNSsRwS" resolve="nextIndent" />
                     </node>
-                    <node concept="3cpWsd" id="1Nl9e7DwNgQ" role="37wK5m">
-                      <node concept="3cmrfG" id="1Nl9e7DwNlJ" role="3uHU7w">
-                        <property role="3cmrfH" value="1" />
-                      </node>
-                      <node concept="37vLTw" id="1Nl9e7DwLP$" role="3uHU7B">
-                        <ref role="3cqZAo" node="1Nl9e7DwIEs" resolve="depth" />
-                      </node>
-                    </node>
                     <node concept="37vLTw" id="1Nl9e7Dxmb1" role="37wK5m">
-                      <ref role="3cqZAo" node="1Nl9e7Dxgfl" resolve="displayModules" />
+                      <ref role="3cqZAo" node="sRpFtPs7$f" resolve="newConfig" />
                     </node>
                   </node>
                 </node>
@@ -2047,8 +2367,13 @@
                       </node>
                     </node>
                   </node>
-                  <node concept="37vLTw" id="1Nl9e7Dxprh" role="3clFbw">
-                    <ref role="3cqZAo" node="1Nl9e7Dxgfl" resolve="displayModules" />
+                  <node concept="2OqwBi" id="sRpFtPsH6n" role="3clFbw">
+                    <node concept="37vLTw" id="1Nl9e7Dxprh" role="2Oq$k0">
+                      <ref role="3cqZAo" node="sRpFtPrLOf" resolve="configuration" />
+                    </node>
+                    <node concept="2sxana" id="sRpFtPsJ0U" role="2OqNvi">
+                      <ref role="2sxfKC" node="sRpFtPqpZu" resolve="displayModules" />
+                    </node>
                   </node>
                 </node>
               </node>
@@ -2179,13 +2504,11 @@
         <property role="TrG5h" value="indent" />
         <node concept="17QB3L" id="58jxdNSsLKy" role="1tU5fm" />
       </node>
-      <node concept="37vLTG" id="1Nl9e7DwIEs" role="3clF46">
-        <property role="TrG5h" value="depth" />
-        <node concept="10Oyi0" id="1Nl9e7DwJA2" role="1tU5fm" />
-      </node>
-      <node concept="37vLTG" id="1Nl9e7Dxgfl" role="3clF46">
-        <property role="TrG5h" value="displayModules" />
-        <node concept="10P_77" id="1Nl9e7DxhFt" role="1tU5fm" />
+      <node concept="37vLTG" id="sRpFtPrLOf" role="3clF46">
+        <property role="TrG5h" value="configuration" />
+        <node concept="3uibUv" id="sRpFtPrOv$" role="1tU5fm">
+          <ref role="3uigEE" node="sRpFtPqp1S" resolve="Configuration" />
+        </node>
       </node>
       <node concept="3Tm6S6" id="58jxdNStlra" role="1B3o_S" />
     </node>
@@ -2950,13 +3273,26 @@
                 </node>
               </node>
             </node>
-            <node concept="3cpWs6" id="1Nl9e7DyW64" role="3cqZAp">
-              <node concept="1Ls8ON" id="1Nl9e7DyXuV" role="3cqZAk">
-                <node concept="37vLTw" id="1Nl9e7DyZ4O" role="1Lso8e">
-                  <ref role="3cqZAo" node="1Nl9e7DyMAk" resolve="depth" />
+            <node concept="3cpWs6" id="sRpFtPqAsS" role="3cqZAp">
+              <node concept="2ry78W" id="sRpFtPqAKc" role="3cqZAk">
+                <ref role="2ryb1Q" node="sRpFtPqp1S" resolve="Configuration" />
+                <node concept="2r$n1x" id="sRpFtPqAXp" role="2r_Bvh">
+                  <ref role="2r$qp6" node="sRpFtPqp2m" resolve="node" />
+                  <node concept="37vLTw" id="sRpFtPqB$f" role="2r_lH1">
+                    <ref role="3cqZAo" node="sRpFtPqxsE" resolve="node" />
+                  </node>
+                </node>
+                <node concept="2r$n1x" id="sRpFtPqBuV" role="2r_Bvh">
+                  <ref role="2r$qp6" node="sRpFtPqppq" resolve="depth" />
+                  <node concept="37vLTw" id="sRpFtPqCsM" role="2r_lH1">
+                    <ref role="3cqZAo" node="1Nl9e7DyMAk" resolve="depth" />
+                  </node>
                 </node>
-                <node concept="37vLTw" id="1Nl9e7DyZAJ" role="1Lso8e">
-                  <ref role="3cqZAo" node="1Nl9e7DyQiR" resolve="displayModules" />
+                <node concept="2r$n1x" id="sRpFtPqCAi" role="2r_Bvh">
+                  <ref role="2r$qp6" node="sRpFtPqpZu" resolve="showModules" />
+                  <node concept="37vLTw" id="sRpFtPqDha" role="2r_lH1">
+                    <ref role="3cqZAo" node="1Nl9e7DyQiR" resolve="displayModules" />
+                  </node>
                 </node>
               </node>
             </node>
@@ -2967,9 +3303,12 @@
         </node>
       </node>
       <node concept="3Tm1VV" id="1Nl9e7Dy5jc" role="1B3o_S" />
-      <node concept="1LlUBW" id="1Nl9e7DyzRl" role="3clF45">
-        <node concept="10Oyi0" id="1Nl9e7Dy_aO" role="1Lm7xW" />
-        <node concept="10P_77" id="1Nl9e7Dy_FJ" role="1Lm7xW" />
+      <node concept="37vLTG" id="sRpFtPqxsE" role="3clF46">
+        <property role="TrG5h" value="node" />
+        <node concept="3Tqbb2" id="sRpFtPqxsD" role="1tU5fm" />
+      </node>
+      <node concept="3uibUv" id="sRpFtPq$1i" role="3clF45">
+        <ref role="3uigEE" node="sRpFtPqp1S" resolve="Configuration" />
       </node>
     </node>
     <node concept="3Tm1VV" id="1Nl9e7Dy5cy" role="1B3o_S" />
@@ -3126,6 +3465,9 @@
                 </node>
                 <node concept="2XshWL" id="1tkdAPw5$zm" role="2OqNvi">
                   <ref role="2WH_rO" node="1tkdAPw5y5I" resolve="setImage" />
+                  <node concept="37vLTw" id="sRpFtPsXWX" role="2XxRq1">
+                    <ref role="3cqZAo" node="sRpFtPsXqT" resolve="configuration" />
+                  </node>
                   <node concept="37vLTw" id="1tkdAPw5$_d" role="2XxRq1">
                     <ref role="3cqZAo" node="1tkdAPw5ihG" resolve="bi" />
                   </node>
@@ -3183,6 +3525,12 @@
           <ref role="3uigEE" to="4nm9:~Project" resolve="Project" />
         </node>
       </node>
+      <node concept="37vLTG" id="sRpFtPsXqT" role="3clF46">
+        <property role="TrG5h" value="configuration" />
+        <node concept="3uibUv" id="sRpFtPsXFP" role="1tU5fm">
+          <ref role="3uigEE" node="sRpFtPqp1S" resolve="Configuration" />
+        </node>
+      </node>
       <node concept="37vLTG" id="1Nl9e7DztE1" role="3clF46">
         <property role="TrG5h" value="source" />
         <node concept="17QB3L" id="1Nl9e7DztE0" role="1tU5fm" />
@@ -3198,14 +3546,30 @@
       <node concept="3clFbS" id="1Nl9e7Dz$jB" role="2VODD2">
         <node concept="3cpWs8" id="1Nl9e7Dz$jC" role="3cqZAp">
           <node concept="3cpWsn" id="1Nl9e7Dz$jD" role="3cpWs9">
-            <property role="TrG5h" value="depthAndShowModules" />
-            <node concept="1LlUBW" id="1Nl9e7Dz$jE" role="1tU5fm">
-              <node concept="10Oyi0" id="1Nl9e7Dz$jF" role="1Lm7xW" />
-              <node concept="10P_77" id="1Nl9e7Dz$jG" role="1Lm7xW" />
-            </node>
+            <property role="TrG5h" value="configuration" />
             <node concept="2YIFZM" id="1Nl9e7Dz$jH" role="33vP2m">
               <ref role="1Pybhc" node="1Nl9e7Dy5cx" resolve="ArchitectureDisplayParametersDialog" />
               <ref role="37wK5l" node="1Nl9e7Dy7ny" resolve="showDialog" />
+              <node concept="2OqwBi" id="sRpFtPt7GU" role="37wK5m">
+                <node concept="2WthIp" id="sRpFtPt7GX" role="2Oq$k0" />
+                <node concept="3gHZIF" id="sRpFtPt7GZ" role="2OqNvi">
+                  <ref role="2WH_rO" node="1Nl9e7Dz$k1" resolve="node" />
+                </node>
+              </node>
+            </node>
+            <node concept="3uibUv" id="sRpFtPt76U" role="1tU5fm">
+              <ref role="3uigEE" node="sRpFtPqp1S" resolve="Configuration" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbJ" id="sRpFtPpq8E" role="3cqZAp">
+          <node concept="3clFbS" id="sRpFtPpq8G" role="3clFbx">
+            <node concept="3cpWs6" id="sRpFtPprle" role="3cqZAp" />
+          </node>
+          <node concept="3clFbC" id="sRpFtPpqFc" role="3clFbw">
+            <node concept="10Nm6u" id="sRpFtPpqXW" role="3uHU7w" />
+            <node concept="37vLTw" id="sRpFtPpqg7" role="3uHU7B">
+              <ref role="3cqZAo" node="1Nl9e7Dz$jD" resolve="depthAndShowModules" />
             </node>
           </node>
         </node>
@@ -3223,27 +3587,8 @@
                   <node concept="2YIFZM" id="1Nl9e7DzZ1t" role="37vLTx">
                     <ref role="37wK5l" node="1Nl9e7DzK4M" resolve="convertComponentDefinition" />
                     <ref role="1Pybhc" node="6qVhvNsIxrS" resolve="Arch2PlantUMLConverterUtils" />
-                    <node concept="2OqwBi" id="1Nl9e7DzZ1u" role="37wK5m">
-                      <node concept="2WthIp" id="1Nl9e7DzZ1v" role="2Oq$k0" />
-                      <node concept="3gHZIF" id="1Nl9e7DzZ1w" role="2OqNvi">
-                        <ref role="2WH_rO" node="1Nl9e7Dz$k1" resolve="node" />
-                      </node>
-                    </node>
-                    <node concept="1LFfDK" id="1Nl9e7DzZ1x" role="37wK5m">
-                      <node concept="3cmrfG" id="1Nl9e7DzZ1y" role="1LF_Uc">
-                        <property role="3cmrfH" value="0" />
-                      </node>
-                      <node concept="37vLTw" id="1Nl9e7DzZ1z" role="1LFl5Q">
-                        <ref role="3cqZAo" node="1Nl9e7Dz$jD" resolve="depthAndShowModules" />
-                      </node>
-                    </node>
-                    <node concept="1LFfDK" id="1Nl9e7DzZ1$" role="37wK5m">
-                      <node concept="37vLTw" id="1Nl9e7DzZ1_" role="1LFl5Q">
-                        <ref role="3cqZAo" node="1Nl9e7Dz$jD" resolve="depthAndShowModules" />
-                      </node>
-                      <node concept="3cmrfG" id="1Nl9e7DzZ1A" role="1LF_Uc">
-                        <property role="3cmrfH" value="1" />
-                      </node>
+                    <node concept="37vLTw" id="sRpFtPt7OR" role="37wK5m">
+                      <ref role="3cqZAo" node="1Nl9e7Dz$jD" resolve="configuration" />
                     </node>
                   </node>
                   <node concept="37vLTw" id="sRpFtPj9KC" role="37vLTJ">
@@ -3261,7 +3606,7 @@
               </node>
             </node>
             <node concept="liA8E" id="sRpFtPjcHV" role="2OqNvi">
-              <ref role="37wK5l" to="z1c3:~Project.getRepository()" resolve="getRepository" />
+              <ref role="37wK5l" to="z1c4:~Project.getRepository()" resolve="getRepository" />
             </node>
           </node>
         </node>
@@ -3275,6 +3620,9 @@
                 <ref role="2WH_rO" node="1Nl9e7Dz$k5" resolve="proj" />
               </node>
             </node>
+            <node concept="37vLTw" id="sRpFtPt81j" role="37wK5m">
+              <ref role="3cqZAo" node="1Nl9e7Dz$jD" resolve="configuration" />
+            </node>
             <node concept="37vLTw" id="1Nl9e7Dz$k0" role="37wK5m">
               <ref role="3cqZAo" node="1Nl9e7Dz$jJ" resolve="source" />
             </node>
@@ -3312,5 +3660,27 @@
       </node>
     </node>
   </node>
+  <node concept="2fD8I5" id="sRpFtPqp1S">
+    <property role="TrG5h" value="Configuration" />
+    <node concept="2lGYhJ" id="sRpFtPqp2m" role="2pHZQ9">
+      <property role="TrG5h" value="node" />
+      <node concept="16syzq" id="sRpFtPrdNa" role="2lK19J">
+        <ref role="16sUi3" node="sRpFtPrd_3" resolve="T" />
+      </node>
+    </node>
+    <node concept="2lGYhJ" id="sRpFtPqppq" role="2pHZQ9">
+      <property role="TrG5h" value="depth" />
+      <node concept="10Oyi0" id="sRpFtPqpZs" role="2lK19J" />
+    </node>
+    <node concept="2lGYhJ" id="sRpFtPqpZu" role="2pHZQ9">
+      <property role="TrG5h" value="displayModules" />
+      <node concept="10P_77" id="sRpFtPqqvZ" role="2lK19J" />
+    </node>
+    <node concept="3Tm1VV" id="sRpFtPqp1T" role="1B3o_S" />
+    <node concept="16euLQ" id="sRpFtPrd_3" role="16eVyc">
+      <property role="TrG5h" value="T" />
+      <node concept="3Tqbb2" id="sRpFtPrdDU" role="3ztrMU" />
+    </node>
+  </node>
 </model>
 
diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
index 7cdfab43..7c250435 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
@@ -29,6 +29,8 @@
     <dependency reexport="false">446c26eb-2b7b-4bf0-9b35-f83fa582753e(jetbrains.mps.lang.modelapi)</dependency>
     <dependency reexport="false">8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)</dependency>
     <dependency reexport="false">ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)</dependency>
+    <dependency reexport="false">86441d7a-e194-42da-81a5-2161ec62a379(MPS.Workbench)</dependency>
+    <dependency reexport="false">39983771-4e9b-401b-a1a9-1da6c777c843(MPS.ThirdParty)</dependency>
   </dependencies>
   <languageVersions>
     <language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
@@ -54,6 +56,8 @@
     <module reference="498d89d2-c2e9-11e2-ad49-6cf049e62fe5(MPS.IDEA)" version="0" />
     <module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
     <module reference="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61(MPS.Platform)" version="0" />
+    <module reference="39983771-4e9b-401b-a1a9-1da6c777c843(MPS.ThirdParty)" version="0" />
+    <module reference="86441d7a-e194-42da-81a5-2161ec62a379(MPS.Workbench)" version="0" />
     <module reference="f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)" version="0" />
     <module reference="fd392034-7849-419d-9071-12563d152375(jetbrains.mps.baseLanguage.closures)" version="0" />
     <module reference="83888646-71ce-4f1c-9c53-c54016f6ad4f(jetbrains.mps.baseLanguage.collections)" version="0" />

From 372b54725bd9ea6ea5d1e1726e00339b9720f027 Mon Sep 17 00:00:00 2001
From: mps-ci-buildbot <mps-ci@itemis.de>
Date: Wed, 18 Sep 2024 17:38:08 +0200
Subject: [PATCH 05/42] Merge maintenance/MPS-2022.2 into
 maintenance/MPS-2022.3 (#190)

* errors_suppressors.plugin: ensure error messages are normalized

* errors_suppressors.plugin: trimming line breaks with whitespace

Co-authored-by: Alexander Rimer <rimer@itemis.de>
---
 ...rrors_suppressor.pluginSolution.plugin.mps | 448 ++++++++++--------
 1 file changed, 256 insertions(+), 192 deletions(-)

diff --git a/code/languages/org.mpsqa.base/solutions/org.mpsqa.base.errors_suppressor.pluginSolution/models/org.mpsqa.base.errors_suppressor.pluginSolution.plugin.mps b/code/languages/org.mpsqa.base/solutions/org.mpsqa.base.errors_suppressor.pluginSolution/models/org.mpsqa.base.errors_suppressor.pluginSolution.plugin.mps
index 67ef32a2..d4a9575e 100644
--- a/code/languages/org.mpsqa.base/solutions/org.mpsqa.base.errors_suppressor.pluginSolution/models/org.mpsqa.base.errors_suppressor.pluginSolution.plugin.mps
+++ b/code/languages/org.mpsqa.base/solutions/org.mpsqa.base.errors_suppressor.pluginSolution/models/org.mpsqa.base.errors_suppressor.pluginSolution.plugin.mps
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <model ref="r:2d0587d8-db5b-486e-9a45-ecc0a4a2a2d5(org.mpsqa.base.errors_suppressor.pluginSolution.plugin)">
   <persistence version="9" />
+  <attribute name="doNotGenerate" value="false" />
   <languages>
     <use id="ef7bf5ac-d06c-4342-b11d-e42104eb9343" name="jetbrains.mps.lang.plugin.standalone" version="0" />
     <use id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel" version="19" />
@@ -12,6 +13,8 @@
     <use id="63650c59-16c8-498a-99c8-005c7ee9515d" name="jetbrains.mps.lang.access" version="0" />
     <use id="1a8554c4-eb84-43ba-8c34-6f0d90c6e75a" name="jetbrains.mps.lang.smodel.query" version="3" />
     <use id="760a0a8c-eabb-4521-8bfd-65db761a9ba3" name="jetbrains.mps.baseLanguage.logging" version="0" />
+    <use id="443f4c36-fcf5-4eb6-9500-8d06ed259e3e" name="jetbrains.mps.baseLanguage.classifiers" version="0" />
+    <use id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core" version="2" />
     <use id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage" version="12" />
     <use id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples" version="0" />
   </languages>
@@ -26,11 +29,11 @@
     <import index="wyuk" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.components(MPS.Core/)" />
     <import index="z1c3" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.project(MPS.Core/)" />
     <import index="hkkt" ref="r:905f3835-f5d7-48c4-a6d6-3110a028428c(org.mpsqa.base.errors_suppressor.structure)" />
+    <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" />
     <import index="exr9" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/java:jetbrains.mps.nodeEditor(MPS.Editor/)" />
     <import index="z1c4" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.project(MPS.Platform/)" />
     <import index="n70j" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/java:jetbrains.mps.nodeEditor.checking(MPS.Editor/)" />
     <import index="18ew" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.util(MPS.Core/)" />
-    <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
     <import index="kpve" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/java:jetbrains.mps.openapi.editor.message(MPS.Editor/)" implicit="true" />
   </imports>
   <registry>
@@ -141,6 +144,7 @@
       <concept id="1068498886292" name="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" flags="ir" index="37vLTG" />
       <concept id="1068498886294" name="jetbrains.mps.baseLanguage.structure.AssignmentExpression" flags="nn" index="37vLTI" />
       <concept id="1225271177708" name="jetbrains.mps.baseLanguage.structure.StringType" flags="in" index="17QB3L" />
+      <concept id="1225271546410" name="jetbrains.mps.baseLanguage.structure.TrimOperation" flags="nn" index="17S1cR" />
       <concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
         <child id="5680397130376446158" name="type" index="1tU5fm" />
       </concept>
@@ -715,6 +719,53 @@
                                     </node>
                                   </node>
                                 </node>
+                                <node concept="3SKdUt" id="3eHAW53_4fk" role="3cqZAp">
+                                  <node concept="1PaTwC" id="3eHAW53_4fl" role="1aUNEU">
+                                    <node concept="3oM_SD" id="3eHAW53_6yW" role="1PaTwD">
+                                      <property role="3oM_SC" value="normalize" />
+                                    </node>
+                                    <node concept="3oM_SD" id="3eHAW53_79V" role="1PaTwD">
+                                      <property role="3oM_SC" value="error" />
+                                    </node>
+                                    <node concept="3oM_SD" id="3eHAW53_7aY" role="1PaTwD">
+                                      <property role="3oM_SC" value="messages" />
+                                    </node>
+                                  </node>
+                                </node>
+                                <node concept="3cpWs8" id="3eHAW53$g1O" role="3cqZAp">
+                                  <node concept="3cpWsn" id="3eHAW53$g1P" role="3cpWs9">
+                                    <property role="TrG5h" value="separator" />
+                                    <node concept="17QB3L" id="3eHAW53$p07" role="1tU5fm" />
+                                    <node concept="2YIFZM" id="3eHAW53$g1Q" role="33vP2m">
+                                      <ref role="1Pybhc" to="wyt6:~System" resolve="System" />
+                                      <ref role="37wK5l" to="wyt6:~System.getProperty(java.lang.String)" resolve="getProperty" />
+                                      <node concept="Xl_RD" id="3eHAW53$g1R" role="37wK5m">
+                                        <property role="Xl_RC" value="line.separator" />
+                                      </node>
+                                    </node>
+                                  </node>
+                                </node>
+                                <node concept="3clFbF" id="6Mo489AT91P" role="3cqZAp">
+                                  <node concept="37vLTI" id="6Mo489AT91Q" role="3clFbG">
+                                    <node concept="37vLTw" id="6Mo489AT91R" role="37vLTJ">
+                                      <ref role="3cqZAo" node="1DrnXKFT0mM" resolve="msg" />
+                                    </node>
+                                    <node concept="2OqwBi" id="6Mo489AT91S" role="37vLTx">
+                                      <node concept="37vLTw" id="6Mo489AT91T" role="2Oq$k0">
+                                        <ref role="3cqZAo" node="1DrnXKFT0mM" resolve="msg" />
+                                      </node>
+                                      <node concept="liA8E" id="3eHAW53zJNR" role="2OqNvi">
+                                        <ref role="37wK5l" to="wyt6:~String.replace(java.lang.CharSequence,java.lang.CharSequence)" resolve="replace" />
+                                        <node concept="37vLTw" id="3eHAW53$zDd" role="37wK5m">
+                                          <ref role="3cqZAo" node="3eHAW53$g1P" resolve="separator" />
+                                        </node>
+                                        <node concept="Xl_RD" id="3eHAW53zJNT" role="37wK5m">
+                                          <property role="Xl_RC" value="" />
+                                        </node>
+                                      </node>
+                                    </node>
+                                  </node>
+                                </node>
                                 <node concept="3clFbJ" id="5mI4pZCjDSb" role="3cqZAp">
                                   <node concept="3clFbS" id="5mI4pZCjDSd" role="3clFbx">
                                     <node concept="3clFbF" id="1DrnXKFvbNY" role="3cqZAp">
@@ -809,10 +860,60 @@
         </node>
       </node>
     </node>
+    <node concept="3Tm1VV" id="4c7y4qc4V7C" role="1B3o_S" />
+    <node concept="3uibUv" id="4c7y4qc4WGr" role="1zkMxy">
+      <ref role="3uigEE" to="wsw7:6qi2OtU3u$c" resolve="AbstractNodeCheckerInEditor" />
+    </node>
+    <node concept="3UR2Jj" id="3LCCkAqzsod" role="lGtFl">
+      <node concept="TZ5HA" id="3LCCkAqzsoe" role="TZ5H$">
+        <node concept="1dT_AC" id="3LCCkAqzsof" role="1dT_Ay">
+          <property role="1dT_AB" value="A special kind of checker that does nothing, but does have a " />
+        </node>
+        <node concept="1dT_AA" id="3LCCkAqzwDY" role="1dT_Ay">
+          <node concept="92FcH" id="3LCCkAqzwE4" role="qph3F">
+            <node concept="TZ5HA" id="3LCCkAqzwE6" role="2XjZqd" />
+            <node concept="VXe08" id="3LCCkAqzxVB" role="92FcQ">
+              <ref role="VXe09" to="wsw7:4c7y4qc4pe6" resolve="ICheckingPostprocessor" />
+            </node>
+          </node>
+        </node>
+        <node concept="1dT_AC" id="3LCCkAqzwDX" role="1dT_Ay">
+          <property role="1dT_AB" value=" to process warnings" />
+        </node>
+      </node>
+      <node concept="TZ5HA" id="3LCCkAqzyJ3" role="TZ5H$">
+        <node concept="1dT_AC" id="3LCCkAqzyJ4" role="1dT_Ay">
+          <property role="1dT_AB" value="reported by other checkers and are IRRELEVANT for this project. " />
+        </node>
+      </node>
+      <node concept="TZ5HA" id="3LCCkAqz_bN" role="TZ5H$">
+        <node concept="1dT_AC" id="3LCCkAqz_bO" role="1dT_Ay">
+          <property role="1dT_AB" value="&lt;p&gt;" />
+        </node>
+      </node>
+      <node concept="TZ5HA" id="1DrnXKM1K9Z" role="TZ5H$">
+        <node concept="1dT_AC" id="1DrnXKM1Ka0" role="1dT_Ay">
+          <property role="1dT_AB" value="This code is copied and adapted from &quot;jetbrains.mps.checkers.SuppressErrorsChecker&quot;" />
+        </node>
+      </node>
+    </node>
     <node concept="2tJIrI" id="5mI4pZCjaSw" role="jymVt" />
     <node concept="3clFb_" id="5mI4pZCjiiz" role="jymVt">
       <property role="TrG5h" value="isMessageSuppressed" />
       <node concept="3clFbS" id="5mI4pZCjiiA" role="3clF47">
+        <node concept="3clFbF" id="3eHAW53zwyl" role="3cqZAp">
+          <node concept="37vLTI" id="3eHAW53zwym" role="3clFbG">
+            <node concept="37vLTw" id="3eHAW53zwyn" role="37vLTJ">
+              <ref role="3cqZAo" node="5mI4pZCjkJ5" resolve="message" />
+            </node>
+            <node concept="2OqwBi" id="3eHAW53zJNQ" role="37vLTx">
+              <node concept="37vLTw" id="3eHAW53zC1n" role="2Oq$k0">
+                <ref role="3cqZAo" node="5mI4pZCjkJ5" resolve="message" />
+              </node>
+              <node concept="17S1cR" id="7zx_7y7Ecs2" role="2OqNvi" />
+            </node>
+          </node>
+        </node>
         <node concept="2Gpval" id="5mI4pZCjmZ6" role="3cqZAp">
           <node concept="2GrKxI" id="5mI4pZCjmZ7" role="2Gsz3X">
             <property role="TrG5h" value="regex" />
@@ -928,53 +1029,9 @@
         <node concept="10P_77" id="28p3jNfoMWM" role="1tU5fm" />
       </node>
     </node>
-    <node concept="3Tm1VV" id="4c7y4qc4V7C" role="1B3o_S" />
-    <node concept="3uibUv" id="4c7y4qc4WGr" role="1zkMxy">
-      <ref role="3uigEE" to="wsw7:6qi2OtU3u$c" resolve="AbstractNodeCheckerInEditor" />
-    </node>
-    <node concept="3UR2Jj" id="3LCCkAqzsod" role="lGtFl">
-      <node concept="TZ5HA" id="3LCCkAqzsoe" role="TZ5H$">
-        <node concept="1dT_AC" id="3LCCkAqzsof" role="1dT_Ay">
-          <property role="1dT_AB" value="A special kind of checker that does nothing, but does have a " />
-        </node>
-        <node concept="1dT_AA" id="3LCCkAqzwDY" role="1dT_Ay">
-          <node concept="92FcH" id="3LCCkAqzwE4" role="qph3F">
-            <node concept="TZ5HA" id="3LCCkAqzwE6" role="2XjZqd" />
-            <node concept="VXe08" id="3LCCkAqzxVB" role="92FcQ">
-              <ref role="VXe09" to="wsw7:4c7y4qc4pe6" resolve="ICheckingPostprocessor" />
-            </node>
-          </node>
-        </node>
-        <node concept="1dT_AC" id="3LCCkAqzwDX" role="1dT_Ay">
-          <property role="1dT_AB" value=" to process warnings" />
-        </node>
-      </node>
-      <node concept="TZ5HA" id="3LCCkAqzyJ3" role="TZ5H$">
-        <node concept="1dT_AC" id="3LCCkAqzyJ4" role="1dT_Ay">
-          <property role="1dT_AB" value="reported by other checkers and are IRRELEVANT for this project. " />
-        </node>
-      </node>
-      <node concept="TZ5HA" id="3LCCkAqz_bN" role="TZ5H$">
-        <node concept="1dT_AC" id="3LCCkAqz_bO" role="1dT_Ay">
-          <property role="1dT_AB" value="&lt;p&gt;" />
-        </node>
-      </node>
-      <node concept="TZ5HA" id="1DrnXKM1K9Z" role="TZ5H$">
-        <node concept="1dT_AC" id="1DrnXKM1Ka0" role="1dT_Ay">
-          <property role="1dT_AB" value="This code is copied and adapted from &quot;jetbrains.mps.checkers.SuppressErrorsChecker&quot;" />
-        </node>
-      </node>
-    </node>
   </node>
   <node concept="2uRRBy" id="1DrnXKMVtL_">
     <property role="TrG5h" value="CheckingSuppressorRegistrar" />
-    <node concept="2BZ0e9" id="5OzERE7j3Ob" role="2uRRBA">
-      <property role="TrG5h" value="editorCheckerSuppressor" />
-      <node concept="3Tm6S6" id="5OzERE7j3Oc" role="1B3o_S" />
-      <node concept="3uibUv" id="5OzERE7j44s" role="1tU5fm">
-        <ref role="3uigEE" node="5OzERE7iBzx" resolve="SuppressEditorCheckerResults" />
-      </node>
-    </node>
     <node concept="2uRRBT" id="1DrnXKMVu0e" role="2uRRB$">
       <node concept="3clFbS" id="1DrnXKMVu0f" role="2VODD2">
         <node concept="3clFbF" id="5OzERE7j4LA" role="3cqZAp">
@@ -1209,155 +1266,13 @@
         </node>
       </node>
     </node>
-  </node>
-  <node concept="312cEu" id="5mI4pZChNr3">
-    <property role="TrG5h" value="SuppressorManager" />
-    <node concept="2tJIrI" id="5mI4pZChX1e" role="jymVt" />
-    <node concept="Wx3nA" id="5mI4pZChZkZ" role="jymVt">
-      <property role="TrG5h" value="INSTANCE" />
-      <node concept="3Tm6S6" id="5mI4pZChYWK" role="1B3o_S" />
-      <node concept="3uibUv" id="5mI4pZChZkB" role="1tU5fm">
-        <ref role="3uigEE" node="5mI4pZChNr3" resolve="SuppressorManager" />
-      </node>
-      <node concept="2ShNRf" id="5mI4pZChZs9" role="33vP2m">
-        <node concept="1pGfFk" id="5mI4pZChZD$" role="2ShVmc">
-          <property role="373rjd" value="true" />
-          <ref role="37wK5l" node="5mI4pZChXzM" resolve="SuppressorManager" />
-        </node>
-      </node>
-    </node>
-    <node concept="2tJIrI" id="5mI4pZChY3x" role="jymVt" />
-    <node concept="312cEg" id="5mI4pZChOhT" role="jymVt">
-      <property role="TrG5h" value="suppressors" />
-      <node concept="3Tm6S6" id="5mI4pZChNXY" role="1B3o_S" />
-      <node concept="3rvAFt" id="5mI4pZChO15" role="1tU5fm">
-        <node concept="3uibUv" id="5mI4pZChOcy" role="3rvQeY">
-          <ref role="3uigEE" to="z1c4:~MPSProject" resolve="MPSProject" />
-        </node>
-        <node concept="3uibUv" id="5mI4pZChOhz" role="3rvSg0">
-          <ref role="3uigEE" node="4c7y4qc4V7B" resolve="SuppressCheckerResults" />
-        </node>
-      </node>
-      <node concept="2ShNRf" id="5mI4pZChOjw" role="33vP2m">
-        <node concept="3rGOSV" id="5mI4pZChOxZ" role="2ShVmc">
-          <node concept="3uibUv" id="5mI4pZChOGi" role="3rHrn6">
-            <ref role="3uigEE" to="z1c4:~MPSProject" resolve="MPSProject" />
-          </node>
-          <node concept="3uibUv" id="5mI4pZChOPV" role="3rHtpV">
-            <ref role="3uigEE" node="4c7y4qc4V7B" resolve="SuppressCheckerResults" />
-          </node>
-        </node>
-      </node>
-    </node>
-    <node concept="2tJIrI" id="5mI4pZChOSL" role="jymVt" />
-    <node concept="3clFbW" id="5mI4pZChXzM" role="jymVt">
-      <node concept="3cqZAl" id="5mI4pZChXzN" role="3clF45" />
-      <node concept="3clFbS" id="5mI4pZChXzP" role="3clF47" />
-      <node concept="3Tm6S6" id="5mI4pZChXt9" role="1B3o_S" />
-    </node>
-    <node concept="2tJIrI" id="5mI4pZChZG9" role="jymVt" />
-    <node concept="2YIFZL" id="5mI4pZCi0Wq" role="jymVt">
-      <property role="TrG5h" value="getInstance" />
-      <node concept="3clFbS" id="5mI4pZCi0Ws" role="3clF47">
-        <node concept="3clFbF" id="5mI4pZCi0Wt" role="3cqZAp">
-          <node concept="37vLTw" id="5mI4pZCi0Wu" role="3clFbG">
-            <ref role="3cqZAo" node="5mI4pZChZkZ" resolve="INSTANCE" />
-          </node>
-        </node>
-      </node>
-      <node concept="3uibUv" id="5mI4pZCi0Ww" role="3clF45">
-        <ref role="3uigEE" node="5mI4pZChNr3" resolve="SuppressorManager" />
-      </node>
-      <node concept="3Tm1VV" id="5mI4pZCi0Wv" role="1B3o_S" />
-    </node>
-    <node concept="2tJIrI" id="5mI4pZChXJG" role="jymVt" />
-    <node concept="3clFb_" id="5mI4pZChPmt" role="jymVt">
-      <property role="TrG5h" value="addSuppressor" />
-      <node concept="3clFbS" id="5mI4pZChPmw" role="3clF47">
-        <node concept="3clFbF" id="5mI4pZChPDx" role="3cqZAp">
-          <node concept="37vLTI" id="5mI4pZChSJx" role="3clFbG">
-            <node concept="37vLTw" id="5mI4pZChSL5" role="37vLTx">
-              <ref role="3cqZAo" node="5mI4pZChPty" resolve="suppressor" />
-            </node>
-            <node concept="3EllGN" id="5mI4pZChQ1m" role="37vLTJ">
-              <node concept="37vLTw" id="5mI4pZChQhF" role="3ElVtu">
-                <ref role="3cqZAo" node="5mI4pZChPq0" resolve="project" />
-              </node>
-              <node concept="37vLTw" id="5mI4pZChPDw" role="3ElQJh">
-                <ref role="3cqZAo" node="5mI4pZChOhT" resolve="suppressors" />
-              </node>
-            </node>
-          </node>
-        </node>
-      </node>
-      <node concept="3Tm1VV" id="5mI4pZChPak" role="1B3o_S" />
-      <node concept="3cqZAl" id="5mI4pZChPlU" role="3clF45" />
-      <node concept="37vLTG" id="5mI4pZChPq0" role="3clF46">
-        <property role="TrG5h" value="project" />
-        <node concept="3uibUv" id="5mI4pZChPpZ" role="1tU5fm">
-          <ref role="3uigEE" to="z1c4:~MPSProject" resolve="MPSProject" />
-        </node>
-      </node>
-      <node concept="37vLTG" id="5mI4pZChPty" role="3clF46">
-        <property role="TrG5h" value="suppressor" />
-        <node concept="3uibUv" id="5mI4pZChPwZ" role="1tU5fm">
-          <ref role="3uigEE" node="4c7y4qc4V7B" resolve="SuppressCheckerResults" />
-        </node>
-      </node>
-    </node>
-    <node concept="2tJIrI" id="5mI4pZChT1d" role="jymVt" />
-    <node concept="3clFb_" id="5mI4pZChT3v" role="jymVt">
-      <property role="TrG5h" value="removeSuppressor" />
-      <node concept="3clFbS" id="5mI4pZChT3w" role="3clF47">
-        <node concept="3clFbF" id="5mI4pZChTvD" role="3cqZAp">
-          <node concept="2OqwBi" id="5mI4pZChTSA" role="3clFbG">
-            <node concept="37vLTw" id="5mI4pZChTvC" role="2Oq$k0">
-              <ref role="3cqZAo" node="5mI4pZChOhT" resolve="suppressors" />
-            </node>
-            <node concept="kI3uX" id="5mI4pZChUoZ" role="2OqNvi">
-              <node concept="37vLTw" id="5mI4pZChUrD" role="kIiFs">
-                <ref role="3cqZAo" node="5mI4pZChT3D" resolve="project" />
-              </node>
-            </node>
-          </node>
-        </node>
-      </node>
-      <node concept="3Tm1VV" id="5mI4pZChT3B" role="1B3o_S" />
-      <node concept="3cqZAl" id="5mI4pZChT3C" role="3clF45" />
-      <node concept="37vLTG" id="5mI4pZChT3D" role="3clF46">
-        <property role="TrG5h" value="project" />
-        <node concept="3uibUv" id="5mI4pZChT3E" role="1tU5fm">
-          <ref role="3uigEE" to="z1c4:~MPSProject" resolve="MPSProject" />
-        </node>
-      </node>
-    </node>
-    <node concept="2tJIrI" id="5mI4pZChT1e" role="jymVt" />
-    <node concept="3clFb_" id="5mI4pZChUXE" role="jymVt">
-      <property role="TrG5h" value="getSuppressor" />
-      <node concept="3clFbS" id="5mI4pZChUXH" role="3clF47">
-        <node concept="3clFbF" id="5mI4pZChVax" role="3cqZAp">
-          <node concept="3EllGN" id="5mI4pZChVC7" role="3clFbG">
-            <node concept="37vLTw" id="5mI4pZChVWs" role="3ElVtu">
-              <ref role="3cqZAo" node="5mI4pZChV4q" resolve="project" />
-            </node>
-            <node concept="37vLTw" id="5mI4pZChVaw" role="3ElQJh">
-              <ref role="3cqZAo" node="5mI4pZChOhT" resolve="suppressors" />
-            </node>
-          </node>
-        </node>
-      </node>
-      <node concept="3Tm1VV" id="5mI4pZChURw" role="1B3o_S" />
-      <node concept="3uibUv" id="5mI4pZChUWZ" role="3clF45">
-        <ref role="3uigEE" node="4c7y4qc4V7B" resolve="SuppressCheckerResults" />
-      </node>
-      <node concept="37vLTG" id="5mI4pZChV4q" role="3clF46">
-        <property role="TrG5h" value="project" />
-        <node concept="3uibUv" id="5mI4pZChV4p" role="1tU5fm">
-          <ref role="3uigEE" to="z1c4:~MPSProject" resolve="MPSProject" />
-        </node>
+    <node concept="2BZ0e9" id="5OzERE7j3Ob" role="2uRRBA">
+      <property role="TrG5h" value="editorCheckerSuppressor" />
+      <node concept="3Tm6S6" id="5OzERE7j3Oc" role="1B3o_S" />
+      <node concept="3uibUv" id="5OzERE7j44s" role="1tU5fm">
+        <ref role="3uigEE" node="5OzERE7iBzx" resolve="SuppressEditorCheckerResults" />
       </node>
     </node>
-    <node concept="3Tm1VV" id="5mI4pZChNr4" role="1B3o_S" />
   </node>
   <node concept="312cEu" id="5OzERE7iBzx">
     <property role="TrG5h" value="SuppressEditorCheckerResults" />
@@ -1637,5 +1552,154 @@
       </node>
     </node>
   </node>
+  <node concept="312cEu" id="5mI4pZChNr3">
+    <property role="TrG5h" value="SuppressorManager" />
+    <node concept="2tJIrI" id="5mI4pZChX1e" role="jymVt" />
+    <node concept="Wx3nA" id="5mI4pZChZkZ" role="jymVt">
+      <property role="TrG5h" value="INSTANCE" />
+      <node concept="3Tm6S6" id="5mI4pZChYWK" role="1B3o_S" />
+      <node concept="3uibUv" id="5mI4pZChZkB" role="1tU5fm">
+        <ref role="3uigEE" node="5mI4pZChNr3" resolve="SuppressorManager" />
+      </node>
+      <node concept="2ShNRf" id="5mI4pZChZs9" role="33vP2m">
+        <node concept="1pGfFk" id="5mI4pZChZD$" role="2ShVmc">
+          <property role="373rjd" value="true" />
+          <ref role="37wK5l" node="5mI4pZChXzM" resolve="SuppressorManager" />
+        </node>
+      </node>
+    </node>
+    <node concept="2tJIrI" id="5mI4pZChY3x" role="jymVt" />
+    <node concept="312cEg" id="5mI4pZChOhT" role="jymVt">
+      <property role="TrG5h" value="suppressors" />
+      <node concept="3Tm6S6" id="5mI4pZChNXY" role="1B3o_S" />
+      <node concept="3rvAFt" id="5mI4pZChO15" role="1tU5fm">
+        <node concept="3uibUv" id="5mI4pZChOcy" role="3rvQeY">
+          <ref role="3uigEE" to="z1c4:~MPSProject" resolve="MPSProject" />
+        </node>
+        <node concept="3uibUv" id="5mI4pZChOhz" role="3rvSg0">
+          <ref role="3uigEE" node="4c7y4qc4V7B" resolve="SuppressCheckerResults" />
+        </node>
+      </node>
+      <node concept="2ShNRf" id="5mI4pZChOjw" role="33vP2m">
+        <node concept="3rGOSV" id="5mI4pZChOxZ" role="2ShVmc">
+          <node concept="3uibUv" id="5mI4pZChOGi" role="3rHrn6">
+            <ref role="3uigEE" to="z1c4:~MPSProject" resolve="MPSProject" />
+          </node>
+          <node concept="3uibUv" id="5mI4pZChOPV" role="3rHtpV">
+            <ref role="3uigEE" node="4c7y4qc4V7B" resolve="SuppressCheckerResults" />
+          </node>
+        </node>
+      </node>
+    </node>
+    <node concept="2tJIrI" id="5mI4pZChOSL" role="jymVt" />
+    <node concept="3clFbW" id="5mI4pZChXzM" role="jymVt">
+      <node concept="3cqZAl" id="5mI4pZChXzN" role="3clF45" />
+      <node concept="3clFbS" id="5mI4pZChXzP" role="3clF47" />
+      <node concept="3Tm6S6" id="5mI4pZChXt9" role="1B3o_S" />
+    </node>
+    <node concept="2tJIrI" id="5mI4pZChZG9" role="jymVt" />
+    <node concept="2YIFZL" id="5mI4pZCi0Wq" role="jymVt">
+      <property role="TrG5h" value="getInstance" />
+      <node concept="3clFbS" id="5mI4pZCi0Ws" role="3clF47">
+        <node concept="3clFbF" id="5mI4pZCi0Wt" role="3cqZAp">
+          <node concept="37vLTw" id="5mI4pZCi0Wu" role="3clFbG">
+            <ref role="3cqZAo" node="5mI4pZChZkZ" resolve="INSTANCE" />
+          </node>
+        </node>
+      </node>
+      <node concept="3uibUv" id="5mI4pZCi0Ww" role="3clF45">
+        <ref role="3uigEE" node="5mI4pZChNr3" resolve="SuppressorManager" />
+      </node>
+      <node concept="3Tm1VV" id="5mI4pZCi0Wv" role="1B3o_S" />
+    </node>
+    <node concept="2tJIrI" id="5mI4pZChXJG" role="jymVt" />
+    <node concept="3clFb_" id="5mI4pZChPmt" role="jymVt">
+      <property role="TrG5h" value="addSuppressor" />
+      <node concept="3clFbS" id="5mI4pZChPmw" role="3clF47">
+        <node concept="3clFbF" id="5mI4pZChPDx" role="3cqZAp">
+          <node concept="37vLTI" id="5mI4pZChSJx" role="3clFbG">
+            <node concept="37vLTw" id="5mI4pZChSL5" role="37vLTx">
+              <ref role="3cqZAo" node="5mI4pZChPty" resolve="suppressor" />
+            </node>
+            <node concept="3EllGN" id="5mI4pZChQ1m" role="37vLTJ">
+              <node concept="37vLTw" id="5mI4pZChQhF" role="3ElVtu">
+                <ref role="3cqZAo" node="5mI4pZChPq0" resolve="project" />
+              </node>
+              <node concept="37vLTw" id="5mI4pZChPDw" role="3ElQJh">
+                <ref role="3cqZAo" node="5mI4pZChOhT" resolve="suppressors" />
+              </node>
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="3Tm1VV" id="5mI4pZChPak" role="1B3o_S" />
+      <node concept="3cqZAl" id="5mI4pZChPlU" role="3clF45" />
+      <node concept="37vLTG" id="5mI4pZChPq0" role="3clF46">
+        <property role="TrG5h" value="project" />
+        <node concept="3uibUv" id="5mI4pZChPpZ" role="1tU5fm">
+          <ref role="3uigEE" to="z1c4:~MPSProject" resolve="MPSProject" />
+        </node>
+      </node>
+      <node concept="37vLTG" id="5mI4pZChPty" role="3clF46">
+        <property role="TrG5h" value="suppressor" />
+        <node concept="3uibUv" id="5mI4pZChPwZ" role="1tU5fm">
+          <ref role="3uigEE" node="4c7y4qc4V7B" resolve="SuppressCheckerResults" />
+        </node>
+      </node>
+    </node>
+    <node concept="2tJIrI" id="5mI4pZChT1d" role="jymVt" />
+    <node concept="3clFb_" id="5mI4pZChT3v" role="jymVt">
+      <property role="TrG5h" value="removeSuppressor" />
+      <node concept="3clFbS" id="5mI4pZChT3w" role="3clF47">
+        <node concept="3clFbF" id="5mI4pZChTvD" role="3cqZAp">
+          <node concept="2OqwBi" id="5mI4pZChTSA" role="3clFbG">
+            <node concept="37vLTw" id="5mI4pZChTvC" role="2Oq$k0">
+              <ref role="3cqZAo" node="5mI4pZChOhT" resolve="suppressors" />
+            </node>
+            <node concept="kI3uX" id="5mI4pZChUoZ" role="2OqNvi">
+              <node concept="37vLTw" id="5mI4pZChUrD" role="kIiFs">
+                <ref role="3cqZAo" node="5mI4pZChT3D" resolve="project" />
+              </node>
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="3Tm1VV" id="5mI4pZChT3B" role="1B3o_S" />
+      <node concept="3cqZAl" id="5mI4pZChT3C" role="3clF45" />
+      <node concept="37vLTG" id="5mI4pZChT3D" role="3clF46">
+        <property role="TrG5h" value="project" />
+        <node concept="3uibUv" id="5mI4pZChT3E" role="1tU5fm">
+          <ref role="3uigEE" to="z1c4:~MPSProject" resolve="MPSProject" />
+        </node>
+      </node>
+    </node>
+    <node concept="2tJIrI" id="5mI4pZChT1e" role="jymVt" />
+    <node concept="3clFb_" id="5mI4pZChUXE" role="jymVt">
+      <property role="TrG5h" value="getSuppressor" />
+      <node concept="3clFbS" id="5mI4pZChUXH" role="3clF47">
+        <node concept="3clFbF" id="5mI4pZChVax" role="3cqZAp">
+          <node concept="3EllGN" id="5mI4pZChVC7" role="3clFbG">
+            <node concept="37vLTw" id="5mI4pZChVWs" role="3ElVtu">
+              <ref role="3cqZAo" node="5mI4pZChV4q" resolve="project" />
+            </node>
+            <node concept="37vLTw" id="5mI4pZChVaw" role="3ElQJh">
+              <ref role="3cqZAo" node="5mI4pZChOhT" resolve="suppressors" />
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="3Tm1VV" id="5mI4pZChURw" role="1B3o_S" />
+      <node concept="3uibUv" id="5mI4pZChUWZ" role="3clF45">
+        <ref role="3uigEE" node="4c7y4qc4V7B" resolve="SuppressCheckerResults" />
+      </node>
+      <node concept="37vLTG" id="5mI4pZChV4q" role="3clF46">
+        <property role="TrG5h" value="project" />
+        <node concept="3uibUv" id="5mI4pZChV4p" role="1tU5fm">
+          <ref role="3uigEE" to="z1c4:~MPSProject" resolve="MPSProject" />
+        </node>
+      </node>
+    </node>
+    <node concept="3Tm1VV" id="5mI4pZChNr4" role="1B3o_S" />
+  </node>
 </model>
 

From 2399d297d432bfcc849988600746d139035f7449 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Wed, 18 Sep 2024 15:12:57 +0200
Subject: [PATCH 06/42] mpsqa.arch: better deal with incomplete input

---
 .../models/org.mpsqa.arch.behavior.mps        | 328 ++++++++++++------
 .../models/org.mpsqa.arch.constraints.mps     |  68 +++-
 .../models/org.mpsqa.arch.editor.mps          |   2 +-
 .../models/org.mpsqa.arch.typesystem.mps      |  56 ++-
 .../org.mpsqa.arch.pluginSolution.plugin.mps  |   2 +-
 .../org.mpsqa.arch.pluginSolution.msd         |   3 +-
 .../org.mpsqa.build._080_lint_build.mps       |   3 +
 7 files changed, 336 insertions(+), 126 deletions(-)

diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
index d8b04d9f..b9ff49bf 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
@@ -22,6 +22,7 @@
     <import index="z1c3" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.project(MPS.Core/)" />
     <import index="c17a" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.language(MPS.OpenAPI/)" />
     <import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" />
+    <import index="dvox" ref="r:9dfd3567-3b1f-4edb-85a0-3981ca2bfd8c(jetbrains.mps.lang.modelapi.structure)" implicit="true" />
   </imports>
   <registry>
     <language id="af65afd8-f0dd-4942-87d9-63a55f2a9db1" name="jetbrains.mps.lang.behavior">
@@ -81,6 +82,7 @@
         <child id="1068580123134" name="parameter" index="3clF46" />
         <child id="1068580123135" name="body" index="3clF47" />
       </concept>
+      <concept id="1068580123152" name="jetbrains.mps.baseLanguage.structure.EqualsExpression" flags="nn" index="3clFbC" />
       <concept id="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
         <child id="1068580123156" name="expression" index="3clFbG" />
       </concept>
@@ -146,6 +148,10 @@
       <concept id="4693937538533521280" name="jetbrains.mps.lang.smodel.structure.OfConceptOperation" flags="ng" index="v3k3i">
         <child id="4693937538533538124" name="requestedConcept" index="v3oSu" />
       </concept>
+      <concept id="2396822768958367367" name="jetbrains.mps.lang.smodel.structure.AbstractTypeCastExpression" flags="nn" index="$5XWr">
+        <child id="6733348108486823193" name="leftExpression" index="1m5AlR" />
+        <child id="3906496115198199033" name="conceptArgument" index="3oSUPX" />
+      </concept>
       <concept id="1143226024141" name="jetbrains.mps.lang.smodel.structure.SModelType" flags="in" index="H_c77" />
       <concept id="1143234257716" name="jetbrains.mps.lang.smodel.structure.Node_GetModelOperation" flags="nn" index="I4A8Y" />
       <concept id="1145383075378" name="jetbrains.mps.lang.smodel.structure.SNodeListType" flags="in" index="2I9FWS">
@@ -166,6 +172,9 @@
       <concept id="1144101972840" name="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" flags="ng" index="1xMEDy">
         <child id="1207343664468" name="conceptArgument" index="ri$Ld" />
       </concept>
+      <concept id="1140137987495" name="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression" flags="nn" index="1PxgMI">
+        <property id="1238684351431" name="asCast" index="1BlNFB" />
+      </concept>
       <concept id="1138055754698" name="jetbrains.mps.lang.smodel.structure.SNodeType" flags="in" index="3Tqbb2">
         <reference id="1138405853777" name="concept" index="ehGHo" />
       </concept>
@@ -228,6 +237,7 @@
       <concept id="1202128969694" name="jetbrains.mps.baseLanguage.collections.structure.SelectOperation" flags="nn" index="3$u5V9" />
       <concept id="1176501494711" name="jetbrains.mps.baseLanguage.collections.structure.IsNotEmptyOperation" flags="nn" index="3GX2aA" />
       <concept id="1172254888721" name="jetbrains.mps.baseLanguage.collections.structure.ContainsOperation" flags="nn" index="3JPx81" />
+      <concept id="31378964227347002" name="jetbrains.mps.baseLanguage.collections.structure.SelectNotNullOperation" flags="ng" index="1KnU$U" />
     </language>
   </registry>
   <node concept="13h7C7" id="1tkdAPw1H7h">
@@ -690,7 +700,26 @@
             </node>
           </node>
         </node>
-        <node concept="3clFbH" id="fm3v0WTDTz" role="3cqZAp" />
+        <node concept="3clFbJ" id="sRpFtP$7ct" role="3cqZAp">
+          <node concept="3clFbS" id="sRpFtP$7cv" role="3clFbx">
+            <node concept="3cpWs6" id="sRpFtP$bs8" role="3cqZAp">
+              <node concept="2ShNRf" id="sRpFtP$cb4" role="3cqZAk">
+                <node concept="Tc6Ow" id="sRpFtP$db$" role="2ShVmc">
+                  <node concept="3uibUv" id="sRpFtP$fI0" role="HW$YZ">
+                    <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+          <node concept="3clFbC" id="sRpFtP$9GN" role="3clFbw">
+            <node concept="10Nm6u" id="sRpFtP$aty" role="3uHU7w" />
+            <node concept="37vLTw" id="sRpFtP$8Dg" role="3uHU7B">
+              <ref role="3cqZAo" node="6ESRMYID1VC" resolve="source" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="sRpFtP$66s" role="3cqZAp" />
         <node concept="3SKdUt" id="fm3v0WTF4z" role="3cqZAp">
           <node concept="1PaTwC" id="fm3v0WTF4$" role="1aUNEU">
             <node concept="3oM_SD" id="fm3v0WTF4_" role="1PaTwD">
@@ -759,40 +788,27 @@
                     <ref role="3uigEE" to="mhbf:~SModelId" resolve="SModelId" />
                   </node>
                 </node>
-                <node concept="2OqwBi" id="fm3v0WS4rv" role="33vP2m">
-                  <node concept="2OqwBi" id="fm3v0WS4rw" role="2Oq$k0">
-                    <node concept="13iPFW" id="fm3v0WS4rx" role="2Oq$k0" />
-                    <node concept="3Tsc0h" id="fm3v0WS4ry" role="2OqNvi">
-                      <ref role="3TtcxE" to="ryx8:fm3v0WRQCu" resolve="excludeModels" />
-                    </node>
+                <node concept="2OqwBi" id="sRpFtPBHV4" role="33vP2m">
+                  <node concept="BsUDl" id="sRpFtPBDbv" role="2Oq$k0">
+                    <ref role="37wK5l" node="sRpFtPBjJv" resolve="getExcludedModelRefs" />
                   </node>
-                  <node concept="3$u5V9" id="fm3v0WS4rz" role="2OqNvi">
-                    <node concept="1bVj0M" id="fm3v0WS4r$" role="23t8la">
-                      <node concept="3clFbS" id="fm3v0WS4r_" role="1bW5cS">
-                        <node concept="3clFbF" id="fm3v0WS4rA" role="3cqZAp">
-                          <node concept="2OqwBi" id="fm3v0WS4rB" role="3clFbG">
-                            <node concept="2OqwBi" id="fm3v0WS4rC" role="2Oq$k0">
-                              <node concept="2OqwBi" id="fm3v0WS4rD" role="2Oq$k0">
-                                <node concept="37vLTw" id="fm3v0WS4rE" role="2Oq$k0">
-                                  <ref role="3cqZAo" node="fm3v0WS4rI" resolve="it" />
-                                </node>
-                                <node concept="3TrEf2" id="fm3v0WS4rF" role="2OqNvi">
-                                  <ref role="3Tt5mk" to="tp25:1Bs_61$ngwB" resolve="modelRef" />
-                                </node>
-                              </node>
-                              <node concept="2qgKlT" id="fm3v0WS4rG" role="2OqNvi">
-                                <ref role="37wK5l" to="xlb7:1Bs_61$mvvu" resolve="toModelReference" />
-                              </node>
+                  <node concept="3$u5V9" id="sRpFtPBJ1f" role="2OqNvi">
+                    <node concept="1bVj0M" id="sRpFtPBJ1h" role="23t8la">
+                      <node concept="3clFbS" id="sRpFtPBJ1i" role="1bW5cS">
+                        <node concept="3clFbF" id="sRpFtPBJUZ" role="3cqZAp">
+                          <node concept="2OqwBi" id="sRpFtPBKGk" role="3clFbG">
+                            <node concept="37vLTw" id="sRpFtPBJUY" role="2Oq$k0">
+                              <ref role="3cqZAo" node="sRpFtPBJ1j" resolve="it" />
                             </node>
-                            <node concept="liA8E" id="fm3v0WS4rH" role="2OqNvi">
+                            <node concept="liA8E" id="sRpFtPBLPe" role="2OqNvi">
                               <ref role="37wK5l" to="mhbf:~SModelReference.getModelId()" resolve="getModelId" />
                             </node>
                           </node>
                         </node>
                       </node>
-                      <node concept="Rh6nW" id="fm3v0WS4rI" role="1bW2Oz">
+                      <node concept="Rh6nW" id="sRpFtPBJ1j" role="1bW2Oz">
                         <property role="TrG5h" value="it" />
-                        <node concept="2jxLKc" id="fm3v0WS4rJ" role="1tU5fm" />
+                        <node concept="2jxLKc" id="sRpFtPBJ1k" role="1tU5fm" />
                       </node>
                     </node>
                   </node>
@@ -1097,7 +1113,26 @@
             </node>
           </node>
         </node>
-        <node concept="3clFbH" id="fm3v0WTSUZ" role="3cqZAp" />
+        <node concept="3clFbJ" id="sRpFtP$I0T" role="3cqZAp">
+          <node concept="3clFbS" id="sRpFtP$I0V" role="3clFbx">
+            <node concept="3cpWs6" id="sRpFtP$NyH" role="3cqZAp">
+              <node concept="2ShNRf" id="sRpFtP$Nzw" role="3cqZAk">
+                <node concept="Tc6Ow" id="sRpFtP$OCF" role="2ShVmc">
+                  <node concept="3uibUv" id="sRpFtP$RRN" role="HW$YZ">
+                    <ref role="3uigEE" to="c17a:~SLanguage" resolve="SLanguage" />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+          <node concept="3clFbC" id="sRpFtP$KWG" role="3clFbw">
+            <node concept="10Nm6u" id="sRpFtP$M99" role="3uHU7w" />
+            <node concept="37vLTw" id="sRpFtP$JyA" role="3uHU7B">
+              <ref role="3cqZAo" node="fm3v0WTSUN" resolve="source" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="sRpFtP$GXq" role="3cqZAp" />
         <node concept="3SKdUt" id="fm3v0WTSV0" role="3cqZAp">
           <node concept="1PaTwC" id="fm3v0WTSV1" role="1aUNEU">
             <node concept="3oM_SD" id="fm3v0WTSV2" role="1PaTwD">
@@ -1169,40 +1204,30 @@
                     <ref role="3uigEE" to="mhbf:~SModelId" resolve="SModelId" />
                   </node>
                 </node>
-                <node concept="2OqwBi" id="fm3v0WTSVq" role="33vP2m">
-                  <node concept="2OqwBi" id="fm3v0WTSVr" role="2Oq$k0">
-                    <node concept="13iPFW" id="fm3v0WTSVs" role="2Oq$k0" />
-                    <node concept="3Tsc0h" id="fm3v0WTSVt" role="2OqNvi">
-                      <ref role="3TtcxE" to="ryx8:fm3v0WRQCu" resolve="excludeModels" />
+                <node concept="2OqwBi" id="sRpFtPBYc4" role="33vP2m">
+                  <node concept="2OqwBi" id="sRpFtPBPLp" role="2Oq$k0">
+                    <node concept="13iPFW" id="sRpFtPBODE" role="2Oq$k0" />
+                    <node concept="2qgKlT" id="sRpFtPBRjz" role="2OqNvi">
+                      <ref role="37wK5l" node="sRpFtPBjJv" resolve="getExcludedModelRefs" />
                     </node>
                   </node>
-                  <node concept="3$u5V9" id="fm3v0WTSVu" role="2OqNvi">
-                    <node concept="1bVj0M" id="fm3v0WTSVv" role="23t8la">
-                      <node concept="3clFbS" id="fm3v0WTSVw" role="1bW5cS">
-                        <node concept="3clFbF" id="fm3v0WTSVx" role="3cqZAp">
-                          <node concept="2OqwBi" id="fm3v0WTSVy" role="3clFbG">
-                            <node concept="2OqwBi" id="fm3v0WTSVz" role="2Oq$k0">
-                              <node concept="2OqwBi" id="fm3v0WTSV$" role="2Oq$k0">
-                                <node concept="37vLTw" id="fm3v0WTSV_" role="2Oq$k0">
-                                  <ref role="3cqZAo" node="fm3v0WTSVD" resolve="it" />
-                                </node>
-                                <node concept="3TrEf2" id="fm3v0WTSVA" role="2OqNvi">
-                                  <ref role="3Tt5mk" to="tp25:1Bs_61$ngwB" resolve="modelRef" />
-                                </node>
-                              </node>
-                              <node concept="2qgKlT" id="fm3v0WTSVB" role="2OqNvi">
-                                <ref role="37wK5l" to="xlb7:1Bs_61$mvvu" resolve="toModelReference" />
-                              </node>
+                  <node concept="3$u5V9" id="sRpFtPC05d" role="2OqNvi">
+                    <node concept="1bVj0M" id="sRpFtPC05f" role="23t8la">
+                      <node concept="3clFbS" id="sRpFtPC05g" role="1bW5cS">
+                        <node concept="3clFbF" id="sRpFtPC1BC" role="3cqZAp">
+                          <node concept="2OqwBi" id="sRpFtPC37g" role="3clFbG">
+                            <node concept="37vLTw" id="sRpFtPC1BB" role="2Oq$k0">
+                              <ref role="3cqZAo" node="sRpFtPC05h" resolve="it" />
                             </node>
-                            <node concept="liA8E" id="fm3v0WTSVC" role="2OqNvi">
+                            <node concept="liA8E" id="sRpFtPC4pG" role="2OqNvi">
                               <ref role="37wK5l" to="mhbf:~SModelReference.getModelId()" resolve="getModelId" />
                             </node>
                           </node>
                         </node>
                       </node>
-                      <node concept="Rh6nW" id="fm3v0WTSVD" role="1bW2Oz">
+                      <node concept="Rh6nW" id="sRpFtPC05h" role="1bW2Oz">
                         <property role="TrG5h" value="it" />
-                        <node concept="2jxLKc" id="fm3v0WTSVE" role="1tU5fm" />
+                        <node concept="2jxLKc" id="sRpFtPC05i" role="1tU5fm" />
                       </node>
                     </node>
                   </node>
@@ -1505,6 +1530,44 @@
             </node>
           </node>
         </node>
+        <node concept="3cpWs8" id="sRpFtPzzq2" role="3cqZAp">
+          <node concept="3cpWsn" id="sRpFtPzzq3" role="3cpWs9">
+            <property role="TrG5h" value="modulePointer" />
+            <node concept="3Tqbb2" id="sRpFtPzz8e" role="1tU5fm">
+              <ref role="ehGHo" to="dvox:k2ZBl8Cedx" resolve="ModulePointer" />
+            </node>
+            <node concept="1PxgMI" id="sRpFtPzDf9" role="33vP2m">
+              <property role="1BlNFB" value="true" />
+              <node concept="chp4Y" id="sRpFtPzENX" role="3oSUPX">
+                <ref role="cht4Q" to="dvox:k2ZBl8Cedx" resolve="ModulePointer" />
+              </node>
+              <node concept="2OqwBi" id="sRpFtPzzq4" role="1m5AlR">
+                <node concept="2OqwBi" id="sRpFtPzzq5" role="2Oq$k0">
+                  <node concept="13iPFW" id="sRpFtPzzq6" role="2Oq$k0" />
+                  <node concept="3TrEf2" id="sRpFtPzzq7" role="2OqNvi">
+                    <ref role="3Tt5mk" to="ryx8:6MUZd5Uje4i" resolve="module" />
+                  </node>
+                </node>
+                <node concept="3TrEf2" id="sRpFtPzzq8" role="2OqNvi">
+                  <ref role="3Tt5mk" to="tp25:1t9FffgebJ_" resolve="moduleId" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbJ" id="sRpFtPzHZV" role="3cqZAp">
+          <node concept="3clFbS" id="sRpFtPzHZX" role="3clFbx">
+            <node concept="3cpWs6" id="sRpFtPzOvN" role="3cqZAp">
+              <node concept="10Nm6u" id="sRpFtPzOvU" role="3cqZAk" />
+            </node>
+          </node>
+          <node concept="3clFbC" id="sRpFtPzLa0" role="3clFbw">
+            <node concept="10Nm6u" id="sRpFtPzN8x" role="3uHU7w" />
+            <node concept="37vLTw" id="sRpFtPzJDq" role="3uHU7B">
+              <ref role="3cqZAo" node="sRpFtPzzq3" resolve="modulePointer" />
+            </node>
+          </node>
+        </node>
         <node concept="3cpWs8" id="fm3v0WXc8Q" role="3cqZAp">
           <node concept="3cpWsn" id="fm3v0WXc8R" role="3cpWs9">
             <property role="TrG5h" value="source" />
@@ -1513,16 +1576,8 @@
             </node>
             <node concept="2OqwBi" id="fm3v0WXc8T" role="33vP2m">
               <node concept="2OqwBi" id="fm3v0WXc8U" role="2Oq$k0">
-                <node concept="2OqwBi" id="fm3v0WXc8V" role="2Oq$k0">
-                  <node concept="2OqwBi" id="fm3v0WXc8W" role="2Oq$k0">
-                    <node concept="13iPFW" id="fm3v0WXc8X" role="2Oq$k0" />
-                    <node concept="3TrEf2" id="fm3v0WXc8Y" role="2OqNvi">
-                      <ref role="3Tt5mk" to="ryx8:6MUZd5Uje4i" resolve="module" />
-                    </node>
-                  </node>
-                  <node concept="3TrEf2" id="fm3v0WXc8Z" role="2OqNvi">
-                    <ref role="3Tt5mk" to="tp25:1t9FffgebJ_" resolve="moduleId" />
-                  </node>
+                <node concept="37vLTw" id="sRpFtPzzq9" role="2Oq$k0">
+                  <ref role="3cqZAo" node="sRpFtPzzq3" resolve="moduleId" />
                 </node>
                 <node concept="2qgKlT" id="fm3v0WXc90" role="2OqNvi">
                   <ref role="37wK5l" to="xlb7:1Bs_61$mqDd" resolve="toModuleReference" />
@@ -1562,6 +1617,33 @@
             </node>
           </node>
         </node>
+        <node concept="3cpWs8" id="sRpFtP_eQX" role="3cqZAp">
+          <node concept="3cpWsn" id="sRpFtP_eQY" role="3cpWs9">
+            <property role="TrG5h" value="sourceModule" />
+            <node concept="3uibUv" id="sRpFtP_eLt" role="1tU5fm">
+              <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
+            </node>
+            <node concept="BsUDl" id="sRpFtP_eQZ" role="33vP2m">
+              <ref role="37wK5l" node="fm3v0WXaPS" resolve="sourceModule" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbJ" id="sRpFtP_fGi" role="3cqZAp">
+          <node concept="3clFbS" id="sRpFtP_fGk" role="3clFbx">
+            <node concept="3cpWs6" id="sRpFtP_g8h" role="3cqZAp">
+              <node concept="37vLTw" id="sRpFtP_ghP" role="3cqZAk">
+                <ref role="3cqZAo" node="1XeVdf85OuG" resolve="allModels" />
+              </node>
+            </node>
+          </node>
+          <node concept="3clFbC" id="sRpFtP_g06" role="3clFbw">
+            <node concept="10Nm6u" id="sRpFtP_g8f" role="3uHU7w" />
+            <node concept="37vLTw" id="sRpFtP_fGn" role="3uHU7B">
+              <ref role="3cqZAo" node="sRpFtP_eQY" resolve="sourceModule" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="sRpFtP_fvk" role="3cqZAp" />
         <node concept="3cpWs8" id="1XeVdf862MA" role="3cqZAp">
           <node concept="3cpWsn" id="1XeVdf862MB" role="3cpWs9">
             <property role="TrG5h" value="excludedModelsList" />
@@ -1571,41 +1653,29 @@
               </node>
             </node>
             <node concept="2OqwBi" id="1XeVdf862MC" role="33vP2m">
-              <node concept="2OqwBi" id="1XeVdf862MD" role="2Oq$k0">
-                <node concept="2OqwBi" id="1XeVdf862ME" role="2Oq$k0">
-                  <node concept="2OqwBi" id="1XeVdf862MF" role="2Oq$k0">
-                    <node concept="13iPFW" id="1XeVdf862MG" role="2Oq$k0" />
-                    <node concept="3Tsc0h" id="1XeVdf862MH" role="2OqNvi">
-                      <ref role="3TtcxE" to="ryx8:fm3v0WRQCu" resolve="excludeModels" />
-                    </node>
-                  </node>
-                  <node concept="13MTOL" id="1XeVdf862MI" role="2OqNvi">
-                    <ref role="13MTZf" to="tp25:1Bs_61$ngwB" resolve="modelRef" />
-                  </node>
+              <node concept="ANE8D" id="1XeVdf862N0" role="2OqNvi" />
+              <node concept="2OqwBi" id="sRpFtPBuVO" role="2Oq$k0">
+                <node concept="BsUDl" id="sRpFtPBu1B" role="2Oq$k0">
+                  <ref role="37wK5l" node="sRpFtPBjJv" resolve="getExcludedModelIDs" />
                 </node>
-                <node concept="3$u5V9" id="1XeVdf862MJ" role="2OqNvi">
-                  <node concept="1bVj0M" id="1XeVdf862MK" role="23t8la">
-                    <node concept="3clFbS" id="1XeVdf862ML" role="1bW5cS">
-                      <node concept="3clFbF" id="1XeVdf862MM" role="3cqZAp">
-                        <node concept="2OqwBi" id="1XeVdf862MN" role="3clFbG">
-                          <node concept="2OqwBi" id="1XeVdf862MO" role="2Oq$k0">
-                            <node concept="37vLTw" id="1XeVdf862MP" role="2Oq$k0">
-                              <ref role="3cqZAo" node="1XeVdf862MY" resolve="it" />
-                            </node>
-                            <node concept="2qgKlT" id="1XeVdf862MQ" role="2OqNvi">
-                              <ref role="37wK5l" to="xlb7:1Bs_61$mvvu" resolve="toModelReference" />
-                            </node>
+                <node concept="3$u5V9" id="sRpFtPBvKo" role="2OqNvi">
+                  <node concept="1bVj0M" id="sRpFtPBvKq" role="23t8la">
+                    <node concept="3clFbS" id="sRpFtPBvKr" role="1bW5cS">
+                      <node concept="3clFbF" id="sRpFtPBvWY" role="3cqZAp">
+                        <node concept="2OqwBi" id="sRpFtPBwdO" role="3clFbG">
+                          <node concept="37vLTw" id="sRpFtPBvWX" role="2Oq$k0">
+                            <ref role="3cqZAo" node="sRpFtPBvKs" resolve="it" />
                           </node>
-                          <node concept="liA8E" id="1XeVdf862MR" role="2OqNvi">
+                          <node concept="liA8E" id="sRpFtPBB5s" role="2OqNvi">
                             <ref role="37wK5l" to="mhbf:~SModelReference.resolve(org.jetbrains.mps.openapi.module.SRepository)" resolve="resolve" />
-                            <node concept="2OqwBi" id="1XeVdf862MS" role="37wK5m">
-                              <node concept="2JrnkZ" id="1XeVdf862MT" role="2Oq$k0">
-                                <node concept="2OqwBi" id="1XeVdf862MU" role="2JrQYb">
-                                  <node concept="13iPFW" id="1XeVdf862MV" role="2Oq$k0" />
-                                  <node concept="I4A8Y" id="1XeVdf862MW" role="2OqNvi" />
+                            <node concept="2OqwBi" id="sRpFtPBBj2" role="37wK5m">
+                              <node concept="2JrnkZ" id="sRpFtPBBj3" role="2Oq$k0">
+                                <node concept="2OqwBi" id="sRpFtPBBj4" role="2JrQYb">
+                                  <node concept="13iPFW" id="sRpFtPBBj5" role="2Oq$k0" />
+                                  <node concept="I4A8Y" id="sRpFtPBBj6" role="2OqNvi" />
                                 </node>
                               </node>
-                              <node concept="liA8E" id="1XeVdf862MX" role="2OqNvi">
+                              <node concept="liA8E" id="sRpFtPBBj7" role="2OqNvi">
                                 <ref role="37wK5l" to="mhbf:~SModel.getRepository()" resolve="getRepository" />
                               </node>
                             </node>
@@ -1613,14 +1683,13 @@
                         </node>
                       </node>
                     </node>
-                    <node concept="Rh6nW" id="1XeVdf862MY" role="1bW2Oz">
+                    <node concept="Rh6nW" id="sRpFtPBvKs" role="1bW2Oz">
                       <property role="TrG5h" value="it" />
-                      <node concept="2jxLKc" id="1XeVdf862MZ" role="1tU5fm" />
+                      <node concept="2jxLKc" id="sRpFtPBvKt" role="1tU5fm" />
                     </node>
                   </node>
                 </node>
               </node>
-              <node concept="ANE8D" id="1XeVdf862N0" role="2OqNvi" />
             </node>
           </node>
         </node>
@@ -1659,8 +1728,8 @@
             </node>
           </node>
           <node concept="2OqwBi" id="1XeVdf85T2Z" role="2GsD0m">
-            <node concept="BsUDl" id="1XeVdf85STj" role="2Oq$k0">
-              <ref role="37wK5l" node="fm3v0WXaPS" resolve="sourceModule" />
+            <node concept="37vLTw" id="sRpFtP_eR0" role="2Oq$k0">
+              <ref role="3cqZAo" node="sRpFtP_eQY" resolve="sourceModule" />
             </node>
             <node concept="liA8E" id="1XeVdf85TeZ" role="2OqNvi">
               <ref role="37wK5l" to="lui2:~SModule.getModels()" resolve="getModels" />
@@ -1677,6 +1746,69 @@
         <node concept="H_c77" id="1XeVdf85Lxv" role="_ZDj9" />
       </node>
     </node>
+    <node concept="13i0hz" id="sRpFtPBjJv" role="13h7CS">
+      <property role="TrG5h" value="getExcludedModelRefs" />
+      <node concept="3Tm1VV" id="sRpFtPBjJw" role="1B3o_S" />
+      <node concept="_YKpA" id="sRpFtPBmbV" role="3clF45">
+        <node concept="3uibUv" id="sRpFtPBmcd" role="_ZDj9">
+          <ref role="3uigEE" to="mhbf:~SModelReference" resolve="SModelReference" />
+        </node>
+      </node>
+      <node concept="3clFbS" id="sRpFtPBjJy" role="3clF47">
+        <node concept="3clFbF" id="sRpFtPBmzG" role="3cqZAp">
+          <node concept="2OqwBi" id="sRpFtPBnRV" role="3clFbG">
+            <node concept="2OqwBi" id="sRpFtPBSUt" role="2Oq$k0">
+              <node concept="2OqwBi" id="sRpFtPBmcA" role="2Oq$k0">
+                <node concept="2OqwBi" id="sRpFtPBmcB" role="2Oq$k0">
+                  <node concept="13iPFW" id="sRpFtPBmcC" role="2Oq$k0" />
+                  <node concept="3Tsc0h" id="sRpFtPBmcD" role="2OqNvi">
+                    <ref role="3TtcxE" to="ryx8:fm3v0WRQCu" resolve="excludeModels" />
+                  </node>
+                </node>
+                <node concept="3$u5V9" id="sRpFtPBmcE" role="2OqNvi">
+                  <node concept="1bVj0M" id="sRpFtPBmcF" role="23t8la">
+                    <node concept="3clFbS" id="sRpFtPBmcG" role="1bW5cS">
+                      <node concept="3cpWs8" id="sRpFtPBmcH" role="3cqZAp">
+                        <node concept="3cpWsn" id="sRpFtPBmcI" role="3cpWs9">
+                          <property role="TrG5h" value="modelRef" />
+                          <node concept="3Tqbb2" id="sRpFtPBmcJ" role="1tU5fm">
+                            <ref role="ehGHo" to="dvox:7PoJpZpMbrj" resolve="ModelIdentity" />
+                          </node>
+                          <node concept="2OqwBi" id="sRpFtPBmcK" role="33vP2m">
+                            <node concept="37vLTw" id="sRpFtPBmcL" role="2Oq$k0">
+                              <ref role="3cqZAo" node="sRpFtPBmd4" resolve="it" />
+                            </node>
+                            <node concept="3TrEf2" id="sRpFtPBmcM" role="2OqNvi">
+                              <ref role="3Tt5mk" to="tp25:1Bs_61$ngwB" resolve="modelRef" />
+                            </node>
+                          </node>
+                        </node>
+                      </node>
+                      <node concept="3cpWs6" id="sRpFtPByNv" role="3cqZAp">
+                        <node concept="2OqwBi" id="sRpFtPBmcQ" role="3cqZAk">
+                          <node concept="37vLTw" id="sRpFtPBmcR" role="2Oq$k0">
+                            <ref role="3cqZAo" node="sRpFtPBmcI" resolve="modelRef" />
+                          </node>
+                          <node concept="2qgKlT" id="sRpFtPBmcS" role="2OqNvi">
+                            <ref role="37wK5l" to="xlb7:1Bs_61$mvvu" resolve="toModelReference" />
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                    <node concept="Rh6nW" id="sRpFtPBmd4" role="1bW2Oz">
+                      <property role="TrG5h" value="it" />
+                      <node concept="2jxLKc" id="sRpFtPBmd5" role="1tU5fm" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="1KnU$U" id="sRpFtPBUHF" role="2OqNvi" />
+            </node>
+            <node concept="ANE8D" id="sRpFtPBofE" role="2OqNvi" />
+          </node>
+        </node>
+      </node>
+    </node>
   </node>
   <node concept="13h7C7" id="58jxdNSqZrb">
     <ref role="13h7C2" to="ryx8:6MUZd5Uj9vA" resolve="ArchSpecification" />
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.constraints.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.constraints.mps
index 535ac03e..bbf56ce7 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.constraints.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.constraints.mps
@@ -16,6 +16,7 @@
   <imports>
     <import index="ryx8" ref="r:d0c25d1d-f21e-42b4-b319-5eef0584d5ca(org.mpsqa.arch.structure)" implicit="true" />
     <import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
+    <import index="dvox" ref="r:9dfd3567-3b1f-4edb-85a0-3981ca2bfd8c(jetbrains.mps.lang.modelapi.structure)" implicit="true" />
     <import index="tp25" ref="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" implicit="true" />
     <import index="xlb7" ref="r:cf42fd0a-68d2-493b-8b77-961658617704(jetbrains.mps.lang.modelapi.behavior)" implicit="true" />
     <import index="lui2" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.module(MPS.OpenAPI/)" implicit="true" />
@@ -41,6 +42,7 @@
       <concept id="1070475926800" name="jetbrains.mps.baseLanguage.structure.StringLiteral" flags="nn" index="Xl_RD">
         <property id="1070475926801" name="value" index="Xl_RC" />
       </concept>
+      <concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
       <concept id="1070534760951" name="jetbrains.mps.baseLanguage.structure.ArrayType" flags="in" index="10Q1$e">
         <child id="1070534760952" name="componentType" index="10Q1$1" />
       </concept>
@@ -56,6 +58,7 @@
       <concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
         <child id="5680397130376446158" name="type" index="1tU5fm" />
       </concept>
+      <concept id="1068580123152" name="jetbrains.mps.baseLanguage.structure.EqualsExpression" flags="nn" index="3clFbC" />
       <concept id="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
         <child id="1068580123156" name="expression" index="3clFbG" />
       </concept>
@@ -83,6 +86,10 @@
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
+      <concept id="1081773326031" name="jetbrains.mps.baseLanguage.structure.BinaryOperation" flags="nn" index="3uHJSO">
+        <child id="1081773367579" name="rightExpression" index="3uHU7w" />
+        <child id="1081773367580" name="leftExpression" index="3uHU7B" />
+      </concept>
     </language>
     <language id="3f4bc5f5-c6c1-4a28-8b10-c83066ffa4a1" name="jetbrains.mps.lang.constraints">
       <concept id="1147467115080" name="jetbrains.mps.lang.constraints.structure.NodePropertyConstraint" flags="ng" index="EnEH3">
@@ -108,7 +115,20 @@
       <concept id="4705942098322467729" name="jetbrains.mps.lang.smodel.structure.EnumMemberReference" flags="ng" index="21nZrQ">
         <reference id="4705942098322467736" name="decl" index="21nZrZ" />
       </concept>
+      <concept id="1177026924588" name="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" flags="nn" index="chp4Y">
+        <reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
+      </concept>
       <concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
+      <concept id="2396822768958367367" name="jetbrains.mps.lang.smodel.structure.AbstractTypeCastExpression" flags="nn" index="$5XWr">
+        <child id="6733348108486823193" name="leftExpression" index="1m5AlR" />
+        <child id="3906496115198199033" name="conceptArgument" index="3oSUPX" />
+      </concept>
+      <concept id="1140137987495" name="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression" flags="nn" index="1PxgMI">
+        <property id="1238684351431" name="asCast" index="1BlNFB" />
+      </concept>
+      <concept id="1138055754698" name="jetbrains.mps.lang.smodel.structure.SNodeType" flags="in" index="3Tqbb2">
+        <reference id="1138405853777" name="concept" index="ehGHo" />
+      </concept>
       <concept id="1138056022639" name="jetbrains.mps.lang.smodel.structure.SPropertyAccess" flags="nn" index="3TrcHB">
         <reference id="1138056395725" name="property" index="3TsBF5" />
       </concept>
@@ -166,20 +186,52 @@
               <node concept="17RvpY" id="fm3v0WRhln" role="2OqNvi" />
             </node>
           </node>
-          <node concept="3clFbF" id="6MUZd5UjNGr" role="3cqZAp">
-            <node concept="2OqwBi" id="1tkdAPw0bC4" role="3clFbG">
-              <node concept="2OqwBi" id="6MUZd5UjQS0" role="2Oq$k0">
-                <node concept="2OqwBi" id="6MUZd5UjPAV" role="2Oq$k0">
-                  <node concept="2OqwBi" id="6MUZd5UjNV9" role="2Oq$k0">
-                    <node concept="EsrRn" id="6MUZd5UjNGq" role="2Oq$k0" />
-                    <node concept="3TrEf2" id="6MUZd5UjO9S" role="2OqNvi">
+          <node concept="3cpWs8" id="sRpFtP$A6Q" role="3cqZAp">
+            <node concept="3cpWsn" id="sRpFtP$A6R" role="3cpWs9">
+              <property role="TrG5h" value="modulePointer" />
+              <node concept="3Tqbb2" id="sRpFtP$_P$" role="1tU5fm">
+                <ref role="ehGHo" to="dvox:k2ZBl8Cedx" resolve="ModulePointer" />
+              </node>
+              <node concept="1PxgMI" id="sRpFtP$AVp" role="33vP2m">
+                <property role="1BlNFB" value="true" />
+                <node concept="chp4Y" id="sRpFtP$B4u" role="3oSUPX">
+                  <ref role="cht4Q" to="dvox:k2ZBl8Cedx" resolve="ModulePointer" />
+                </node>
+                <node concept="2OqwBi" id="sRpFtP$A6S" role="1m5AlR">
+                  <node concept="2OqwBi" id="sRpFtP$A6T" role="2Oq$k0">
+                    <node concept="EsrRn" id="sRpFtP$A6U" role="2Oq$k0" />
+                    <node concept="3TrEf2" id="sRpFtP$A6V" role="2OqNvi">
                       <ref role="3Tt5mk" to="ryx8:6MUZd5Uje4i" resolve="module" />
                     </node>
                   </node>
-                  <node concept="3TrEf2" id="6MUZd5UjPYK" role="2OqNvi">
+                  <node concept="3TrEf2" id="sRpFtP$A6W" role="2OqNvi">
                     <ref role="3Tt5mk" to="tp25:1t9FffgebJ_" resolve="moduleId" />
                   </node>
                 </node>
+              </node>
+            </node>
+          </node>
+          <node concept="3clFbJ" id="sRpFtP$BrC" role="3cqZAp">
+            <node concept="3clFbS" id="sRpFtP$BrE" role="3clFbx">
+              <node concept="3cpWs6" id="sRpFtP$BOr" role="3cqZAp">
+                <node concept="Xl_RD" id="sRpFtP_ybt" role="3cqZAk">
+                  <property role="Xl_RC" value="$no_module$" />
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbC" id="sRpFtP$BLP" role="3clFbw">
+              <node concept="10Nm6u" id="sRpFtP$BLT" role="3uHU7w" />
+              <node concept="37vLTw" id="sRpFtP$BuF" role="3uHU7B">
+                <ref role="3cqZAo" node="sRpFtP$A6R" resolve="modulePointer" />
+              </node>
+            </node>
+          </node>
+          <node concept="3clFbF" id="6MUZd5UjNGr" role="3cqZAp">
+            <node concept="2OqwBi" id="1tkdAPw0bC4" role="3clFbG">
+              <node concept="2OqwBi" id="6MUZd5UjQS0" role="2Oq$k0">
+                <node concept="37vLTw" id="sRpFtP$A6X" role="2Oq$k0">
+                  <ref role="3cqZAo" node="sRpFtP$A6R" resolve="moduleId" />
+                </node>
                 <node concept="2qgKlT" id="1tkdAPw0bg6" role="2OqNvi">
                   <ref role="37wK5l" to="xlb7:1Bs_61$mqDd" resolve="toModuleReference" />
                 </node>
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
index 435ed3b6..a40dafb4 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
@@ -732,7 +732,7 @@
         <node concept="VPM3Z" id="1tkdAPw1fYe" role="3F10Kt" />
         <node concept="3XFhqQ" id="1tkdAPw1fYq" role="3EZMnx" />
         <node concept="3F0ifn" id="1tkdAPw1fYw" role="3EZMnx">
-          <property role="3F0ifm" value="excluded models:" />
+          <property role="3F0ifm" value="excludes:" />
         </node>
         <node concept="3F2HdR" id="1tkdAPw1fYC" role="3EZMnx">
           <property role="2czwfO" value="," />
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
index 1ea2a401..ae87e767 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
@@ -234,6 +234,10 @@
         <child id="4693937538533538124" name="requestedConcept" index="v3oSu" />
       </concept>
       <concept id="1173122760281" name="jetbrains.mps.lang.smodel.structure.Node_GetAncestorsOperation" flags="nn" index="z$bX8" />
+      <concept id="2396822768958367367" name="jetbrains.mps.lang.smodel.structure.AbstractTypeCastExpression" flags="nn" index="$5XWr">
+        <child id="6733348108486823193" name="leftExpression" index="1m5AlR" />
+        <child id="3906496115198199033" name="conceptArgument" index="3oSUPX" />
+      </concept>
       <concept id="1143226024141" name="jetbrains.mps.lang.smodel.structure.SModelType" flags="in" index="H_c77" />
       <concept id="1143234257716" name="jetbrains.mps.lang.smodel.structure.Node_GetModelOperation" flags="nn" index="I4A8Y" />
       <concept id="1145383075378" name="jetbrains.mps.lang.smodel.structure.SNodeListType" flags="in" index="2I9FWS">
@@ -262,6 +266,9 @@
       <concept id="1144101972840" name="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" flags="ng" index="1xMEDy">
         <child id="1207343664468" name="conceptArgument" index="ri$Ld" />
       </concept>
+      <concept id="1140137987495" name="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression" flags="nn" index="1PxgMI">
+        <property id="1238684351431" name="asCast" index="1BlNFB" />
+      </concept>
       <concept id="1138055754698" name="jetbrains.mps.lang.smodel.structure.SNodeType" flags="in" index="3Tqbb2">
         <reference id="1138405853777" name="concept" index="ehGHo" />
       </concept>
@@ -1642,20 +1649,37 @@
             <node concept="3cpWsn" id="10aXpfQhjNz" role="3cpWs9">
               <property role="TrG5h" value="moduleId" />
               <node concept="3Tqbb2" id="10aXpfQhjLH" role="1tU5fm">
-                <ref role="ehGHo" to="dvox:_GDk1qZ2J9" resolve="ModuleIdentity" />
+                <ref role="ehGHo" to="dvox:k2ZBl8Cedx" resolve="ModulePointer" />
               </node>
-              <node concept="2OqwBi" id="10aXpfQhjN$" role="33vP2m">
-                <node concept="2OqwBi" id="10aXpfQhjN_" role="2Oq$k0">
-                  <node concept="2GrUjf" id="10aXpfQhjNA" role="2Oq$k0">
-                    <ref role="2Gs0qQ" node="10aXpfQhb6u" resolve="mc" />
+              <node concept="1PxgMI" id="sRpFtPzbOF" role="33vP2m">
+                <property role="1BlNFB" value="true" />
+                <node concept="chp4Y" id="sRpFtPzbUX" role="3oSUPX">
+                  <ref role="cht4Q" to="dvox:k2ZBl8Cedx" resolve="ModulePointer" />
+                </node>
+                <node concept="2OqwBi" id="10aXpfQhjN$" role="1m5AlR">
+                  <node concept="2OqwBi" id="10aXpfQhjN_" role="2Oq$k0">
+                    <node concept="2GrUjf" id="10aXpfQhjNA" role="2Oq$k0">
+                      <ref role="2Gs0qQ" node="10aXpfQhb6u" resolve="mc" />
+                    </node>
+                    <node concept="3TrEf2" id="10aXpfQhjNB" role="2OqNvi">
+                      <ref role="3Tt5mk" to="ryx8:6MUZd5Uje4i" resolve="module" />
+                    </node>
                   </node>
-                  <node concept="3TrEf2" id="10aXpfQhjNB" role="2OqNvi">
-                    <ref role="3Tt5mk" to="ryx8:6MUZd5Uje4i" resolve="module" />
+                  <node concept="3TrEf2" id="10aXpfQhjNC" role="2OqNvi">
+                    <ref role="3Tt5mk" to="tp25:1t9FffgebJ_" resolve="moduleId" />
                   </node>
                 </node>
-                <node concept="3TrEf2" id="10aXpfQhjNC" role="2OqNvi">
-                  <ref role="3Tt5mk" to="tp25:1t9FffgebJ_" resolve="moduleId" />
-                </node>
+              </node>
+            </node>
+          </node>
+          <node concept="3clFbJ" id="sRpFtPzc8Y" role="3cqZAp">
+            <node concept="3clFbS" id="sRpFtPzc90" role="3clFbx">
+              <node concept="3N13vt" id="sRpFtPzcJh" role="3cqZAp" />
+            </node>
+            <node concept="3clFbC" id="sRpFtPzcI7" role="3clFbw">
+              <node concept="10Nm6u" id="sRpFtPzcIa" role="3uHU7w" />
+              <node concept="37vLTw" id="sRpFtPzczr" role="3uHU7B">
+                <ref role="3cqZAo" node="10aXpfQhjNz" resolve="moduleId" />
               </node>
             </node>
           </node>
@@ -1665,18 +1689,18 @@
               <node concept="3uibUv" id="10aXpfQhlVZ" role="1tU5fm">
                 <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
               </node>
-              <node concept="2OqwBi" id="10aXpfQhlZ5" role="33vP2m">
-                <node concept="2OqwBi" id="10aXpfQhlZ6" role="2Oq$k0">
-                  <node concept="37vLTw" id="10aXpfQhlZ7" role="2Oq$k0">
+              <node concept="2OqwBi" id="sRpFtPzan$" role="33vP2m">
+                <node concept="2OqwBi" id="sRpFtPzanA" role="2Oq$k0">
+                  <node concept="37vLTw" id="sRpFtPzanC" role="2Oq$k0">
                     <ref role="3cqZAo" node="10aXpfQhjNz" resolve="moduleId" />
                   </node>
-                  <node concept="2qgKlT" id="10aXpfQhlZ8" role="2OqNvi">
+                  <node concept="2qgKlT" id="sRpFtPzanu" role="2OqNvi">
                     <ref role="37wK5l" to="xlb7:1Bs_61$mqDd" resolve="toModuleReference" />
                   </node>
                 </node>
-                <node concept="liA8E" id="10aXpfQhlZ9" role="2OqNvi">
+                <node concept="liA8E" id="sRpFtPzanw" role="2OqNvi">
                   <ref role="37wK5l" to="lui2:~SModuleReference.resolve(org.jetbrains.mps.openapi.module.SRepository)" resolve="resolve" />
-                  <node concept="37vLTw" id="10aXpfQhlZa" role="37wK5m">
+                  <node concept="37vLTw" id="sRpFtPzany" role="37wK5m">
                     <ref role="3cqZAo" node="10aXpfQhlPx" resolve="repo" />
                   </node>
                 </node>
diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
index 7725f748..98b5b9e8 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
@@ -29,8 +29,8 @@
     <import index="l5y2" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.ui.scale(MPS.IDEA/)" />
     <import index="z1c3" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.project(MPS.Platform/)" />
     <import index="3s15" ref="86441d7a-e194-42da-81a5-2161ec62a379/java:jetbrains.mps.workbench(MPS.Workbench/)" />
-    <import index="ddhc" ref="39983771-4e9b-401b-a1a9-1da6c777c843/java:com.intellij.ide(MPS.ThirdParty/)" />
     <import index="alof" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.project(MPS.Platform/)" />
+    <import index="ddhc" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.ide(MPS.IDEA/)" />
     <import index="z1c4" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.project(MPS.Core/)" implicit="true" />
     <import index="71xd" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.tools(MPS.Platform/)" implicit="true" />
     <import index="tprs" ref="r:00000000-0000-4000-0000-011c895904a4(jetbrains.mps.ide.actions)" implicit="true" />
diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
index 7c250435..23229811 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <solution name="org.mpsqa.arch.pluginSolution" uuid="96212ac2-423f-4cfb-b211-b58d0546b6bf" moduleVersion="0" pluginKind="PLUGIN_OTHER" compileInMPS="true">
   <models>
-    <modelRoot contentPath="${module}" type="default">
+    <modelRoot type="default" contentPath="${module}">
       <sourceRoot location="models" />
     </modelRoot>
     <modelRoot type="java_classes" contentPath="${module}/lib">
@@ -30,7 +30,6 @@
     <dependency reexport="false">8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)</dependency>
     <dependency reexport="false">ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)</dependency>
     <dependency reexport="false">86441d7a-e194-42da-81a5-2161ec62a379(MPS.Workbench)</dependency>
-    <dependency reexport="false">39983771-4e9b-401b-a1a9-1da6c777c843(MPS.ThirdParty)</dependency>
   </dependencies>
   <languageVersions>
     <language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
diff --git a/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._080_lint_build.mps b/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._080_lint_build.mps
index 9e7ff829..9911f890 100644
--- a/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._080_lint_build.mps
+++ b/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._080_lint_build.mps
@@ -242,6 +242,9 @@
       <node concept="m$_yC" id="4Wm$DJ9mpUP" role="m$_yJ">
         <ref role="m$_y1" to="ffeo:4k71ibbLe59" resolve="com.intellij.modules.mps" />
       </node>
+      <node concept="m$_yC" id="3kvj3BrhVP8" role="m$_yJ">
+        <ref role="m$_y1" to="ffeo:ymnOULATpW" resolve="jetbrains.mps.testing" />
+      </node>
       <node concept="m$_yC" id="30a3800NyCh" role="m$_yJ">
         <ref role="m$_y1" to="ffeo:5lGJ4Taqfsl" resolve="jetbrains.mps.ide.modelchecker" />
       </node>

From e1a74e4dbbbbd90de5d63304abf8ab8d64540f19 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Thu, 19 Sep 2024 11:22:12 +0200
Subject: [PATCH 07/42] mpsqa.arch: show the number of references better in the
 editor

---
 .../models/org.mpsqa.arch.behavior.mps        |  64 +++++
 .../models/org.mpsqa.arch.editor.mps          | 240 +++++++++++-------
 .../models/org.mpsqa.arch.intentions.mps      |   2 +-
 .../models/org.mpsqa.arch.typesystem.mps      |  75 +++---
 .../models/org.mpsqa.arch.util.mps            | 182 +++++++------
 .../org.mpsqa.arch/org.mpsqa.arch.mpl         |   2 +
 6 files changed, 334 insertions(+), 231 deletions(-)

diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
index b9ff49bf..e767177a 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
@@ -57,6 +57,9 @@
       <concept id="1137021947720" name="jetbrains.mps.baseLanguage.structure.ConceptFunction" flags="in" index="2VMwT0">
         <child id="1137022507850" name="body" index="2VODD2" />
       </concept>
+      <concept id="1070475926800" name="jetbrains.mps.baseLanguage.structure.StringLiteral" flags="nn" index="Xl_RD">
+        <property id="1070475926801" name="value" index="Xl_RC" />
+      </concept>
       <concept id="1081236700938" name="jetbrains.mps.baseLanguage.structure.StaticMethodDeclaration" flags="ig" index="2YIFZL" />
       <concept id="1081236700937" name="jetbrains.mps.baseLanguage.structure.StaticMethodCall" flags="nn" index="2YIFZM">
         <reference id="1144433194310" name="classConcept" index="1Pybhc" />
@@ -101,6 +104,7 @@
         <child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
       </concept>
       <concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
+      <concept id="1068581517677" name="jetbrains.mps.baseLanguage.structure.VoidType" flags="in" index="3cqZAl" />
       <concept id="1079359253375" name="jetbrains.mps.baseLanguage.structure.ParenthesizedExpression" flags="nn" index="1eOMI4">
         <child id="1079359253376" name="expression" index="1eOMHV" />
       </concept>
@@ -186,6 +190,9 @@
       </concept>
     </language>
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
+      <concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
+        <property id="1193676396447" name="virtualPackage" index="3GE5qa" />
+      </concept>
       <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
@@ -1977,5 +1984,62 @@
     </node>
     <node concept="3Tm1VV" id="10aXpfQeYpg" role="1B3o_S" />
   </node>
+  <node concept="13h7C7" id="4n1yOK3eHiQ">
+    <property role="3GE5qa" value="dependencies" />
+    <ref role="13h7C2" to="ryx8:6MUZd5Uj9wl" resolve="SingleComponentDependency" />
+    <node concept="13i0hz" id="4n1yOK3eHll" role="13h7CS">
+      <property role="TrG5h" value="getReferencedNodes" />
+      <node concept="3Tm1VV" id="4n1yOK3eHlm" role="1B3o_S" />
+      <node concept="3clFbS" id="4n1yOK3eHlo" role="3clF47">
+        <node concept="3clFbF" id="4n1yOK3eHUs" role="3cqZAp">
+          <node concept="10QFUN" id="4n1yOK3eIJ3" role="3clFbG">
+            <node concept="2I9FWS" id="4n1yOK3eIMO" role="10QFUM" />
+            <node concept="2OqwBi" id="4n1yOK3eIry" role="10QFUP">
+              <node concept="2JrnkZ" id="4n1yOK3eIaD" role="2Oq$k0">
+                <node concept="13iPFW" id="4n1yOK3eHUr" role="2JrQYb" />
+              </node>
+              <node concept="liA8E" id="4n1yOK3eI$o" role="2OqNvi">
+                <ref role="37wK5l" to="mhbf:~SNode.getUserObject(java.lang.Object)" resolve="getUserObject" />
+                <node concept="Xl_RD" id="4n1yOK3eIBq" role="37wK5m">
+                  <property role="Xl_RC" value="referencedNodes" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="2I9FWS" id="4n1yOK3eHJX" role="3clF45" />
+    </node>
+    <node concept="13i0hz" id="4n1yOK3eIYG" role="13h7CS">
+      <property role="TrG5h" value="setReferencedNodes" />
+      <node concept="3Tm1VV" id="4n1yOK3eIYH" role="1B3o_S" />
+      <node concept="3cqZAl" id="4n1yOK3eJ2h" role="3clF45" />
+      <node concept="3clFbS" id="4n1yOK3eIYJ" role="3clF47">
+        <node concept="3clFbF" id="4n1yOK3eJmm" role="3cqZAp">
+          <node concept="2OqwBi" id="4n1yOK3eJMm" role="3clFbG">
+            <node concept="2JrnkZ" id="4n1yOK3eJzm" role="2Oq$k0">
+              <node concept="13iPFW" id="4n1yOK3eJml" role="2JrQYb" />
+            </node>
+            <node concept="liA8E" id="4n1yOK3eJVs" role="2OqNvi">
+              <ref role="37wK5l" to="mhbf:~SNode.putUserObject(java.lang.Object,java.lang.Object)" resolve="putUserObject" />
+              <node concept="Xl_RD" id="4n1yOK3eJXI" role="37wK5m">
+                <property role="Xl_RC" value="referencedNodes" />
+              </node>
+              <node concept="37vLTw" id="4n1yOK3eK8i" role="37wK5m">
+                <ref role="3cqZAo" node="4n1yOK3eJb7" resolve="nodes" />
+              </node>
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="37vLTG" id="4n1yOK3eJb7" role="3clF46">
+        <property role="TrG5h" value="nodes" />
+        <node concept="2I9FWS" id="4n1yOK3eJg9" role="1tU5fm" />
+      </node>
+    </node>
+    <node concept="13hLZK" id="4n1yOK3eHiR" role="13h7CW">
+      <node concept="3clFbS" id="4n1yOK3eHiS" role="2VODD2" />
+    </node>
+  </node>
 </model>
 
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
index a40dafb4..fa17d448 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
@@ -11,23 +11,24 @@
     <import index="u41u" ref="r:88cf32d8-7e39-47c5-b37a-24d1801279ce(org.mpsqa.arch.util)" />
     <import index="lui2" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.module(MPS.OpenAPI/)" />
     <import index="25zl" ref="r:7bd127a5-e641-4c13-b150-b9c9b96f76ae(jetbrains.mps.lang.modelapi.editor)" />
+    <import index="exr9" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/java:jetbrains.mps.nodeEditor(MPS.Editor/)" />
+    <import index="g51k" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/java:jetbrains.mps.nodeEditor.cells(MPS.Editor/)" />
+    <import index="cj4x" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/java:jetbrains.mps.openapi.editor(MPS.Editor/)" />
+    <import index="f4zo" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/java:jetbrains.mps.openapi.editor.cells(MPS.Editor/)" />
+    <import index="k8ev" ref="r:f39afe13-666a-48f2-9d7c-2f9366f78fe5(jetbrains.mps.typesystemEngine.checker)" />
     <import index="ryx8" ref="r:d0c25d1d-f21e-42b4-b319-5eef0584d5ca(org.mpsqa.arch.structure)" implicit="true" />
     <import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
-    <import index="cj4x" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/java:jetbrains.mps.openapi.editor(MPS.Editor/)" implicit="true" />
+    <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
+    <import index="lm2w" ref="r:f5e4041f-398d-420c-a501-c76be3c82f70(org.mpsqa.arch.behavior)" implicit="true" />
     <import index="tp25" ref="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" implicit="true" />
     <import index="tpen" ref="r:00000000-0000-4000-0000-011c895902c3(jetbrains.mps.baseLanguage.editor)" implicit="true" />
     <import index="zqge" ref="r:59e90602-6655-4552-86eb-441a42a9a0e4(jetbrains.mps.lang.text.structure)" implicit="true" />
     <import index="vdrq" ref="r:85354f47-14fd-40e6-a7cc-2d1aa842c4cd(jetbrains.mps.lang.text.behavior)" implicit="true" />
-    <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
   </imports>
   <registry>
     <language id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples">
-      <concept id="1238852151516" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleType" flags="in" index="1LlUBW">
-        <child id="1238852204892" name="componentType" index="1Lm7xW" />
-      </concept>
-      <concept id="1238857743184" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleMemberAccessExpression" flags="nn" index="1LFfDK">
-        <child id="1238857764950" name="tuple" index="1LFl5Q" />
-        <child id="1238857834412" name="index" index="1LF_Uc" />
+      <concept id="1239576519914" name="jetbrains.mps.baseLanguage.tuples.structure.NamedTupleComponentAccessOperation" flags="nn" index="2sxana">
+        <reference id="1239576542472" name="component" index="2sxfKC" />
       </concept>
     </language>
     <language id="18bc6592-03a6-4e29-a83a-7ff23bde13ba" name="jetbrains.mps.lang.editor">
@@ -162,6 +163,9 @@
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+        <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
+      </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
         <reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
       </concept>
@@ -179,9 +183,6 @@
       <concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
         <child id="1068581517665" name="statement" index="3cqZAp" />
       </concept>
-      <concept id="1068580320020" name="jetbrains.mps.baseLanguage.structure.IntegerConstant" flags="nn" index="3cmrfG">
-        <property id="1068580320021" name="value" index="3cmrfH" />
-      </concept>
       <concept id="1068581242875" name="jetbrains.mps.baseLanguage.structure.PlusExpression" flags="nn" index="3cpWs3" />
       <concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
         <child id="1068581517676" name="expression" index="3cqZAk" />
@@ -197,6 +198,7 @@
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
+      <concept id="1212685548494" name="jetbrains.mps.baseLanguage.structure.ClassCreator" flags="nn" index="1pGfFk" />
       <concept id="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
         <reference id="1107535924139" name="classifier" index="3uigEE" />
       </concept>
@@ -227,8 +229,6 @@
         <child id="1144104376918" name="parameter" index="1xVPHs" />
       </concept>
       <concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
-      <concept id="1143226024141" name="jetbrains.mps.lang.smodel.structure.SModelType" flags="in" index="H_c77" />
-      <concept id="1145383075378" name="jetbrains.mps.lang.smodel.structure.SNodeListType" flags="in" index="2I9FWS" />
       <concept id="1171305280644" name="jetbrains.mps.lang.smodel.structure.Node_GetDescendantsOperation" flags="nn" index="2Rf3mk" />
       <concept id="1139184414036" name="jetbrains.mps.lang.smodel.structure.LinkList_AddNewChildOperation" flags="nn" index="WFELt" />
       <concept id="1139613262185" name="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" flags="nn" index="1mfA1w" />
@@ -267,17 +267,10 @@
       <concept id="1204796164442" name="jetbrains.mps.baseLanguage.collections.structure.InternalSequenceOperation" flags="nn" index="23sCx2">
         <child id="1204796294226" name="closure" index="23t8la" />
       </concept>
-      <concept id="1151688443754" name="jetbrains.mps.baseLanguage.collections.structure.ListType" flags="in" index="_YKpA">
-        <child id="1151688676805" name="elementType" index="_ZDj9" />
-      </concept>
       <concept id="1235566554328" name="jetbrains.mps.baseLanguage.collections.structure.AnyOperation" flags="nn" index="2HwmR7" />
       <concept id="1227022210526" name="jetbrains.mps.baseLanguage.collections.structure.ClearAllElementsOperation" flags="nn" index="2Kehj3" />
       <concept id="1203518072036" name="jetbrains.mps.baseLanguage.collections.structure.SmartClosureParameterDeclaration" flags="ig" index="Rh6nW" />
       <concept id="1162935959151" name="jetbrains.mps.baseLanguage.collections.structure.GetSizeOperation" flags="nn" index="34oBXx" />
-      <concept id="1197932370469" name="jetbrains.mps.baseLanguage.collections.structure.MapElement" flags="nn" index="3EllGN">
-        <child id="1197932505799" name="map" index="3ElQJh" />
-        <child id="1197932525128" name="key" index="3ElVtu" />
-      </concept>
       <concept id="1176501494711" name="jetbrains.mps.baseLanguage.collections.structure.IsNotEmptyOperation" flags="nn" index="3GX2aA" />
     </language>
   </registry>
@@ -286,8 +279,8 @@
     <node concept="3EZMnI" id="6MUZd5Uj9w9" role="2wV5jI">
       <node concept="3EZMnI" id="6MUZd5UjaE7" role="3EZMnx">
         <node concept="VPM3Z" id="6MUZd5UjaE9" role="3F10Kt" />
-        <node concept="3F0ifn" id="6MUZd5UjaEh" role="3EZMnx">
-          <property role="3F0ifm" value="architecture specification:" />
+        <node concept="3F0ifn" id="7geiIKJls5p" role="3EZMnx">
+          <property role="3F0ifm" value="architecture specification" />
         </node>
         <node concept="3F0A7n" id="6MUZd5UjaEr" role="3EZMnx">
           <ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
@@ -400,18 +393,7 @@
             <node concept="3clFbS" id="1XeVdf85p9c" role="2VODD2">
               <node concept="3cpWs8" id="1XeVdf8klim" role="3cqZAp">
                 <node concept="3cpWsn" id="1XeVdf8klin" role="3cpWs9">
-                  <property role="TrG5h" value="referencedNodesModelsAndModules" />
-                  <node concept="1LlUBW" id="1XeVdf8kleN" role="1tU5fm">
-                    <node concept="2I9FWS" id="1XeVdf8klf4" role="1Lm7xW" />
-                    <node concept="_YKpA" id="1XeVdf8klf5" role="1Lm7xW">
-                      <node concept="H_c77" id="1XeVdf8klf6" role="_ZDj9" />
-                    </node>
-                    <node concept="_YKpA" id="1XeVdf8klf2" role="1Lm7xW">
-                      <node concept="3uibUv" id="1XeVdf8klf3" role="_ZDj9">
-                        <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
-                      </node>
-                    </node>
-                  </node>
+                  <property role="TrG5h" value="references" />
                   <node concept="2YIFZM" id="1XeVdf8klio" role="33vP2m">
                     <ref role="37wK5l" to="u41u:1XeVdf8k46E" resolve="getOrComputeReferencedNodesModelsAndModulesOrInstantiatedConcepts" />
                     <ref role="1Pybhc" to="u41u:1XeVdf85BSu" resolve="DependencyStrengthUtils" />
@@ -423,80 +405,162 @@
                       </node>
                     </node>
                   </node>
+                  <node concept="3uibUv" id="3kvj3Brik_h" role="1tU5fm">
+                    <ref role="3uigEE" to="u41u:3kvj3BricPs" resolve="ReferencesInfo" />
+                  </node>
                 </node>
               </node>
-              <node concept="3clFbF" id="1XeVdf87Pgl" role="3cqZAp">
-                <node concept="3cpWs3" id="1XeVdf87PW6" role="3clFbG">
-                  <node concept="Xl_RD" id="1XeVdf87PMs" role="3uHU7w">
-                    <property role="Xl_RC" value=")" />
+              <node concept="3cpWs8" id="3kvj3Brilt2" role="3cqZAp">
+                <node concept="3cpWsn" id="3kvj3Brilt3" role="3cpWs9">
+                  <property role="TrG5h" value="builder" />
+                  <node concept="3uibUv" id="3kvj3Brilt4" role="1tU5fm">
+                    <ref role="3uigEE" to="wyt6:~StringBuilder" resolve="StringBuilder" />
                   </node>
-                  <node concept="3cpWs3" id="1XeVdf8jdHG" role="3uHU7B">
-                    <node concept="2OqwBi" id="1XeVdf8joYC" role="3uHU7w">
-                      <node concept="34oBXx" id="1XeVdf8jtgY" role="2OqNvi" />
-                      <node concept="1LFfDK" id="1XeVdf8knmn" role="2Oq$k0">
-                        <node concept="37vLTw" id="1XeVdf8knmp" role="1LFl5Q">
-                          <ref role="3cqZAo" node="1XeVdf8klin" resolve="referencedNodesModelsAndModules" />
+                  <node concept="2ShNRf" id="3kvj3BrilDs" role="33vP2m">
+                    <node concept="1pGfFk" id="3kvj3Brinqy" role="2ShVmc">
+                      <property role="373rjd" value="true" />
+                      <ref role="37wK5l" to="wyt6:~StringBuilder.&lt;init&gt;()" resolve="StringBuilder" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3clFbF" id="3kvj3BriquZ" role="3cqZAp">
+                <node concept="2OqwBi" id="3kvj3Brirez" role="3clFbG">
+                  <node concept="37vLTw" id="3kvj3BriquX" role="2Oq$k0">
+                    <ref role="3cqZAo" node="3kvj3Brilt3" resolve="builder" />
+                  </node>
+                  <node concept="liA8E" id="3kvj3BrirTw" role="2OqNvi">
+                    <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
+                    <node concept="Xl_RD" id="3kvj3BrirTN" role="37wK5m">
+                      <property role="Xl_RC" value="(modules:" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3clFbF" id="3kvj3BritXa" role="3cqZAp">
+                <node concept="2OqwBi" id="3kvj3Briu9S" role="3clFbG">
+                  <node concept="37vLTw" id="3kvj3BritX8" role="2Oq$k0">
+                    <ref role="3cqZAo" node="3kvj3Brilt3" resolve="builder" />
+                  </node>
+                  <node concept="liA8E" id="3kvj3BriuRV" role="2OqNvi">
+                    <ref role="37wK5l" to="wyt6:~StringBuilder.append(int)" resolve="append" />
+                    <node concept="2OqwBi" id="RJhoeKvH38" role="37wK5m">
+                      <node concept="2OqwBi" id="3kvj3BriwMb" role="2Oq$k0">
+                        <node concept="37vLTw" id="3kvj3Briviq" role="2Oq$k0">
+                          <ref role="3cqZAo" node="1XeVdf8klin" resolve="references" />
                         </node>
-                        <node concept="3cmrfG" id="1XeVdf8knwY" role="1LF_Uc">
-                          <property role="3cmrfH" value="2" />
+                        <node concept="2sxana" id="3kvj3Brix_P" role="2OqNvi">
+                          <ref role="2sxfKC" to="u41u:3kvj3Briejf" resolve="modules" />
                         </node>
                       </node>
+                      <node concept="34oBXx" id="RJhoeKvKuw" role="2OqNvi" />
                     </node>
-                    <node concept="3cpWs3" id="1XeVdf8jdlD" role="3uHU7B">
-                      <node concept="3cpWs3" id="1XeVdf8j302" role="3uHU7B">
-                        <node concept="3cpWs3" id="1XeVdf8j2kn" role="3uHU7B">
-                          <node concept="3cpWs3" id="1XeVdf87PKT" role="3uHU7B">
-                            <node concept="Xl_RD" id="1XeVdf87Pgk" role="3uHU7B">
-                              <property role="Xl_RC" value="(" />
-                            </node>
-                            <node concept="2OqwBi" id="1XeVdf8iU$A" role="3uHU7w">
-                              <node concept="1LFfDK" id="1XeVdf8kmJe" role="2Oq$k0">
-                                <node concept="3cmrfG" id="1XeVdf8kmQ8" role="1LF_Uc">
-                                  <property role="3cmrfH" value="0" />
-                                </node>
-                                <node concept="37vLTw" id="1XeVdf8iUjG" role="1LFl5Q">
-                                  <ref role="3cqZAo" node="1XeVdf8klin" resolve="referencedNodesModelsAndModules" />
-                                </node>
-                              </node>
-                              <node concept="34oBXx" id="1XeVdf8iWuV" role="2OqNvi" />
-                            </node>
-                          </node>
-                          <node concept="Xl_RD" id="1XeVdf8j2ys" role="3uHU7w">
-                            <property role="Xl_RC" value="/" />
-                          </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3clFbF" id="3kvj3BriyP0" role="3cqZAp">
+                <node concept="2OqwBi" id="3kvj3Brizyz" role="3clFbG">
+                  <node concept="37vLTw" id="3kvj3BriyOY" role="2Oq$k0">
+                    <ref role="3cqZAo" node="3kvj3Brilt3" resolve="builder" />
+                  </node>
+                  <node concept="liA8E" id="3kvj3Bri$dL" role="2OqNvi">
+                    <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
+                    <node concept="Xl_RD" id="3kvj3Bri$dO" role="37wK5m">
+                      <property role="Xl_RC" value=" |models:" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3clFbF" id="3kvj3Bri_fp" role="3cqZAp">
+                <node concept="2OqwBi" id="3kvj3Bri_sU" role="3clFbG">
+                  <node concept="37vLTw" id="3kvj3Bri_fn" role="2Oq$k0">
+                    <ref role="3cqZAo" node="3kvj3Brilt3" resolve="builder" />
+                  </node>
+                  <node concept="liA8E" id="3kvj3BriAtT" role="2OqNvi">
+                    <ref role="37wK5l" to="wyt6:~StringBuilder.append(int)" resolve="append" />
+                    <node concept="2OqwBi" id="RJhoeKvN9z" role="37wK5m">
+                      <node concept="2OqwBi" id="3kvj3BriF8f" role="2Oq$k0">
+                        <node concept="37vLTw" id="3kvj3BriDnV" role="2Oq$k0">
+                          <ref role="3cqZAo" node="1XeVdf8klin" resolve="references" />
                         </node>
-                        <node concept="2OqwBi" id="1XeVdf8jbjN" role="3uHU7w">
-                          <node concept="34oBXx" id="1XeVdf8jcVT" role="2OqNvi" />
-                          <node concept="1LFfDK" id="1XeVdf8kn3b" role="2Oq$k0">
-                            <node concept="37vLTw" id="1XeVdf8kn3d" role="1LFl5Q">
-                              <ref role="3cqZAo" node="1XeVdf8klin" resolve="referencedNodesModelsAndModules" />
-                            </node>
-                            <node concept="3cmrfG" id="1XeVdf8knbP" role="1LF_Uc">
-                              <property role="3cmrfH" value="1" />
-                            </node>
-                          </node>
+                        <node concept="2sxana" id="3kvj3BriKhm" role="2OqNvi">
+                          <ref role="2sxfKC" to="u41u:3kvj3BridU5" resolve="models" />
                         </node>
                       </node>
-                      <node concept="Xl_RD" id="1XeVdf8jdtA" role="3uHU7w">
-                        <property role="Xl_RC" value="/" />
+                      <node concept="34oBXx" id="RJhoeKvP4l" role="2OqNvi" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3clFbF" id="3kvj3BriLo6" role="3cqZAp">
+                <node concept="2OqwBi" id="3kvj3BriMlt" role="3clFbG">
+                  <node concept="37vLTw" id="3kvj3BriLo4" role="2Oq$k0">
+                    <ref role="3cqZAo" node="3kvj3Brilt3" resolve="builder" />
+                  </node>
+                  <node concept="liA8E" id="3kvj3BriN1P" role="2OqNvi">
+                    <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
+                    <node concept="Xl_RD" id="3kvj3BriNgC" role="37wK5m">
+                      <property role="Xl_RC" value=" |nodes:" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3clFbF" id="3kvj3BriRco" role="3cqZAp">
+                <node concept="2OqwBi" id="3kvj3BriSfX" role="3clFbG">
+                  <node concept="37vLTw" id="3kvj3BriRcm" role="2Oq$k0">
+                    <ref role="3cqZAo" node="3kvj3Brilt3" resolve="builder" />
+                  </node>
+                  <node concept="liA8E" id="3kvj3BriTuF" role="2OqNvi">
+                    <ref role="37wK5l" to="wyt6:~StringBuilder.append(int)" resolve="append" />
+                    <node concept="2OqwBi" id="RJhoeKvQYv" role="37wK5m">
+                      <node concept="2OqwBi" id="3kvj3BriVmw" role="2Oq$k0">
+                        <node concept="37vLTw" id="3kvj3BriTMj" role="2Oq$k0">
+                          <ref role="3cqZAo" node="1XeVdf8klin" resolve="references" />
+                        </node>
+                        <node concept="2sxana" id="3kvj3BriWii" role="2OqNvi">
+                          <ref role="2sxfKC" to="u41u:3kvj3BricZi" resolve="nodes" />
+                        </node>
                       </node>
+                      <node concept="34oBXx" id="RJhoeKvTMU" role="2OqNvi" />
                     </node>
                   </node>
                 </node>
               </node>
+              <node concept="3clFbF" id="3kvj3BriXPs" role="3cqZAp">
+                <node concept="2OqwBi" id="3kvj3BriY_8" role="3clFbG">
+                  <node concept="37vLTw" id="3kvj3BriXPq" role="2Oq$k0">
+                    <ref role="3cqZAo" node="3kvj3Brilt3" resolve="builder" />
+                  </node>
+                  <node concept="liA8E" id="3kvj3BriZSp" role="2OqNvi">
+                    <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
+                    <node concept="Xl_RD" id="3kvj3Brj07K" role="37wK5m">
+                      <property role="Xl_RC" value=")" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3clFbF" id="3kvj3Brio47" role="3cqZAp">
+                <node concept="2OqwBi" id="3kvj3BrioSZ" role="3clFbG">
+                  <node concept="37vLTw" id="3kvj3Brio45" role="2Oq$k0">
+                    <ref role="3cqZAo" node="3kvj3Brilt3" resolve="builder" />
+                  </node>
+                  <node concept="liA8E" id="3kvj3BriqfR" role="2OqNvi">
+                    <ref role="37wK5l" to="wyt6:~StringBuilder.toString()" resolve="toString" />
+                  </node>
+                </node>
+              </node>
             </node>
           </node>
         </node>
         <node concept="pkWqt" id="1XeVdf8hmEo" role="pqm2j">
           <node concept="3clFbS" id="1XeVdf8hmEp" role="2VODD2">
-            <node concept="3clFbF" id="1XeVdf8hog3" role="3cqZAp">
-              <node concept="3y3z36" id="1XeVdf8hsWa" role="3clFbG">
-                <node concept="10Nm6u" id="1XeVdf8ht6l" role="3uHU7w" />
-                <node concept="3EllGN" id="1XeVdf8hoSW" role="3uHU7B">
-                  <node concept="pncrf" id="1XeVdf8hpgz" role="3ElVtu" />
-                  <node concept="10M0yZ" id="1XeVdf8homC" role="3ElQJh">
-                    <ref role="3cqZAo" to="u41u:1XeVdf8hfuh" resolve="referencedNodesList" />
-                    <ref role="1PxDUh" to="u41u:1XeVdf85BSu" resolve="DependencyStrengthUtils" />
+            <node concept="3clFbF" id="4n1yOK3eSh3" role="3cqZAp">
+              <node concept="3y3z36" id="4n1yOK3eWhg" role="3clFbG">
+                <node concept="10Nm6u" id="4n1yOK3eWQP" role="3uHU7w" />
+                <node concept="2OqwBi" id="4n1yOK3eUsH" role="3uHU7B">
+                  <node concept="pncrf" id="4n1yOK3eSh2" role="2Oq$k0" />
+                  <node concept="2qgKlT" id="4n1yOK3eUH$" role="2OqNvi">
+                    <ref role="37wK5l" to="lm2w:4n1yOK3eHll" resolve="getReferencedNodes" />
                   </node>
                 </node>
               </node>
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps
index 2b7734e5..bc160522 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps
@@ -533,7 +533,7 @@
     </node>
   </node>
   <node concept="2S6QgY" id="1XeVdf8hFBy">
-    <property role="TrG5h" value="updateDependenciesStrenghts" />
+    <property role="TrG5h" value="updateDependenciesStrengts" />
     <ref role="2ZfgGC" to="ryx8:6MUZd5UjGNW" resolve="IComponentLike" />
     <node concept="2S6ZIM" id="1XeVdf8hFBz" role="2ZfVej">
       <node concept="3clFbS" id="1XeVdf8hFB$" role="2VODD2">
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
index ae87e767..b2529447 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
@@ -21,12 +21,8 @@
   </imports>
   <registry>
     <language id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples">
-      <concept id="1238852151516" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleType" flags="in" index="1LlUBW">
-        <child id="1238852204892" name="componentType" index="1Lm7xW" />
-      </concept>
-      <concept id="1238857743184" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleMemberAccessExpression" flags="nn" index="1LFfDK">
-        <child id="1238857764950" name="tuple" index="1LFl5Q" />
-        <child id="1238857834412" name="index" index="1LF_Uc" />
+      <concept id="1239576519914" name="jetbrains.mps.baseLanguage.tuples.structure.NamedTupleComponentAccessOperation" flags="nn" index="2sxana">
+        <reference id="1239576542472" name="component" index="2sxfKC" />
       </concept>
     </language>
     <language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
@@ -98,9 +94,6 @@
       <concept id="1068580123137" name="jetbrains.mps.baseLanguage.structure.BooleanConstant" flags="nn" index="3clFbT">
         <property id="1068580123138" name="value" index="3clFbU" />
       </concept>
-      <concept id="1068580320020" name="jetbrains.mps.baseLanguage.structure.IntegerConstant" flags="nn" index="3cmrfG">
-        <property id="1068580320021" name="value" index="3cmrfH" />
-      </concept>
       <concept id="1068581242875" name="jetbrains.mps.baseLanguage.structure.PlusExpression" flags="nn" index="3cpWs3" />
       <concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6" />
       <concept id="1068581242864" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclarationStatement" flags="nn" index="3cpWs8">
@@ -238,7 +231,6 @@
         <child id="6733348108486823193" name="leftExpression" index="1m5AlR" />
         <child id="3906496115198199033" name="conceptArgument" index="3oSUPX" />
       </concept>
-      <concept id="1143226024141" name="jetbrains.mps.lang.smodel.structure.SModelType" flags="in" index="H_c77" />
       <concept id="1143234257716" name="jetbrains.mps.lang.smodel.structure.Node_GetModelOperation" flags="nn" index="I4A8Y" />
       <concept id="1145383075378" name="jetbrains.mps.lang.smodel.structure.SNodeListType" flags="in" index="2I9FWS">
         <reference id="1145383142433" name="elementConcept" index="2I9WkF" />
@@ -2012,17 +2004,6 @@
           <node concept="3cpWs8" id="Te1zv$_udE" role="3cqZAp">
             <node concept="3cpWsn" id="Te1zv$_udF" role="3cpWs9">
               <property role="TrG5h" value="dependencies" />
-              <node concept="1LlUBW" id="Te1zv$_ub8" role="1tU5fm">
-                <node concept="2I9FWS" id="Te1zv$_ubp" role="1Lm7xW" />
-                <node concept="_YKpA" id="Te1zv$_ubn" role="1Lm7xW">
-                  <node concept="H_c77" id="Te1zv$_ubo" role="_ZDj9" />
-                </node>
-                <node concept="_YKpA" id="Te1zv$_ubq" role="1Lm7xW">
-                  <node concept="3uibUv" id="Te1zv$_ubr" role="_ZDj9">
-                    <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
-                  </node>
-                </node>
-              </node>
               <node concept="2YIFZM" id="Te1zv$_udG" role="33vP2m">
                 <ref role="37wK5l" to="u41u:1XeVdf8k46E" resolve="getOrComputeReferencedNodesModelsAndModulesOrInstantiatedConcepts" />
                 <ref role="1Pybhc" to="u41u:1XeVdf85BSu" resolve="DependencyStrengthUtils" />
@@ -2045,8 +2026,12 @@
                   </node>
                 </node>
               </node>
+              <node concept="3uibUv" id="3kvj3Brj3k$" role="1tU5fm">
+                <ref role="3uigEE" to="u41u:3kvj3BricPs" resolve="ReferencesInfo" />
+              </node>
             </node>
           </node>
+          <node concept="3clFbH" id="2L5nkJwIhRZ" role="3cqZAp" />
           <node concept="3cpWs8" id="Te1zv$_vqL" role="3cqZAp">
             <node concept="3cpWsn" id="Te1zv$_vqO" role="3cpWs9">
               <property role="TrG5h" value="dependentObjects" />
@@ -2064,14 +2049,6 @@
             <node concept="3clFbS" id="Te1zv$_CMb" role="3clFbx">
               <node concept="3clFbF" id="Te1zv$_CMc" role="3cqZAp">
                 <node concept="2OqwBi" id="Te1zv$_CMd" role="3clFbG">
-                  <node concept="1LFfDK" id="Te1zv$_CMe" role="2Oq$k0">
-                    <node concept="3cmrfG" id="Te1zv$_CMf" role="1LF_Uc">
-                      <property role="3cmrfH" value="2" />
-                    </node>
-                    <node concept="37vLTw" id="Te1zv$_CMg" role="1LFl5Q">
-                      <ref role="3cqZAo" node="Te1zv$_udF" resolve="dependencies" />
-                    </node>
-                  </node>
                   <node concept="2es0OD" id="Te1zv$_CMh" role="2OqNvi">
                     <node concept="1bVj0M" id="Te1zv$_CMi" role="23t8la">
                       <node concept="3clFbS" id="Te1zv$_CMj" role="1bW5cS">
@@ -2109,6 +2086,14 @@
                       </node>
                     </node>
                   </node>
+                  <node concept="2OqwBi" id="3kvj3Brj4LS" role="2Oq$k0">
+                    <node concept="37vLTw" id="3kvj3Brj3Z5" role="2Oq$k0">
+                      <ref role="3cqZAo" node="Te1zv$_udF" resolve="dependencies" />
+                    </node>
+                    <node concept="2sxana" id="3kvj3Brj5sM" role="2OqNvi">
+                      <ref role="2sxfKC" to="u41u:3kvj3Briejf" resolve="modules" />
+                    </node>
+                  </node>
                 </node>
               </node>
             </node>
@@ -2132,14 +2117,6 @@
             <node concept="3clFbS" id="Te1zv$_uMR" role="3clFbx">
               <node concept="3clFbF" id="Te1zv$_xpq" role="3cqZAp">
                 <node concept="2OqwBi" id="Te1zv$_yRq" role="3clFbG">
-                  <node concept="1LFfDK" id="Te1zv$_y3g" role="2Oq$k0">
-                    <node concept="37vLTw" id="Te1zv$_xpp" role="1LFl5Q">
-                      <ref role="3cqZAo" node="Te1zv$_udF" resolve="dependencies" />
-                    </node>
-                    <node concept="3cmrfG" id="Te1zv$_GzE" role="1LF_Uc">
-                      <property role="3cmrfH" value="1" />
-                    </node>
-                  </node>
                   <node concept="2es0OD" id="Te1zv$_$wz" role="2OqNvi">
                     <node concept="1bVj0M" id="Te1zv$_$w_" role="23t8la">
                       <node concept="3clFbS" id="Te1zv$_$wA" role="1bW5cS">
@@ -2193,6 +2170,14 @@
                       </node>
                     </node>
                   </node>
+                  <node concept="2OqwBi" id="3kvj3Brj5WP" role="2Oq$k0">
+                    <node concept="37vLTw" id="3kvj3Brj5WQ" role="2Oq$k0">
+                      <ref role="3cqZAo" node="Te1zv$_udF" resolve="dependencies" />
+                    </node>
+                    <node concept="2sxana" id="3kvj3Brj5WR" role="2OqNvi">
+                      <ref role="2sxfKC" to="u41u:3kvj3BridU5" resolve="models" />
+                    </node>
+                  </node>
                 </node>
               </node>
             </node>
@@ -2216,14 +2201,6 @@
             <node concept="3clFbS" id="GdL2WcUglE" role="3clFbx">
               <node concept="3clFbF" id="GdL2WcUglF" role="3cqZAp">
                 <node concept="2OqwBi" id="GdL2WcUglG" role="3clFbG">
-                  <node concept="1LFfDK" id="GdL2WcUglH" role="2Oq$k0">
-                    <node concept="37vLTw" id="GdL2WcUglI" role="1LFl5Q">
-                      <ref role="3cqZAo" node="Te1zv$_udF" resolve="dependencies" />
-                    </node>
-                    <node concept="3cmrfG" id="GdL2WcUj2S" role="1LF_Uc">
-                      <property role="3cmrfH" value="0" />
-                    </node>
-                  </node>
                   <node concept="2es0OD" id="GdL2WcUglK" role="2OqNvi">
                     <node concept="1bVj0M" id="GdL2WcUglL" role="23t8la">
                       <node concept="3clFbS" id="GdL2WcUglM" role="1bW5cS">
@@ -2305,6 +2282,14 @@
                       </node>
                     </node>
                   </node>
+                  <node concept="2OqwBi" id="3kvj3Brj6Y5" role="2Oq$k0">
+                    <node concept="37vLTw" id="3kvj3Brj6Y6" role="2Oq$k0">
+                      <ref role="3cqZAo" node="Te1zv$_udF" resolve="dependencies" />
+                    </node>
+                    <node concept="2sxana" id="3kvj3Brj6Y7" role="2OqNvi">
+                      <ref role="2sxfKC" to="u41u:3kvj3BricZi" resolve="nodes" />
+                    </node>
+                  </node>
                 </node>
               </node>
             </node>
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.util.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.util.mps
index 337a4a17..4e8834e3 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.util.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.util.mps
@@ -10,30 +10,31 @@
     <import index="z1c3" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.project(MPS.Core/)" />
     <import index="tp25" ref="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" />
     <import index="xlb7" ref="r:cf42fd0a-68d2-493b-8b77-961658617704(jetbrains.mps.lang.modelapi.behavior)" />
-    <import index="ddnr" ref="r:a408262b-b236-4e39-aad0-05bb28f3fdce(org.mpsqa.arch.intentions)" />
     <import index="w1kc" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.smodel(MPS.Core/)" />
-    <import index="hypd" ref="r:aa31e43e-9240-4f4d-b6db-5c1c9a86c59e(jetbrains.mps.lang.project.structure)" />
-    <import index="alof" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.project(MPS.Platform/)" />
     <import index="mhbf" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)" />
-    <import index="ryx8" ref="r:d0c25d1d-f21e-42b4-b319-5eef0584d5ca(org.mpsqa.arch.structure)" implicit="true" />
-    <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
-    <import index="lm2w" ref="r:f5e4041f-398d-420c-a501-c76be3c82f70(org.mpsqa.arch.behavior)" implicit="true" />
-    <import index="c17a" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.language(MPS.OpenAPI/)" implicit="true" />
+    <import index="c17a" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.language(MPS.OpenAPI/)" />
+    <import index="lm2w" ref="r:f5e4041f-398d-420c-a501-c76be3c82f70(org.mpsqa.arch.behavior)" />
+    <import index="ryx8" ref="r:d0c25d1d-f21e-42b4-b319-5eef0584d5ca(org.mpsqa.arch.structure)" />
+    <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" />
   </imports>
   <registry>
     <language id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples">
-      <concept id="1238852151516" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleType" flags="in" index="1LlUBW">
-        <child id="1238852204892" name="componentType" index="1Lm7xW" />
+      <concept id="1239360506533" name="jetbrains.mps.baseLanguage.tuples.structure.NamedTupleDeclaration" flags="ng" index="2fD8I5">
+        <child id="1239529553065" name="component" index="2pHZQ9" />
       </concept>
-      <concept id="1238853782547" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleLiteral" flags="nn" index="1Ls8ON">
-        <child id="1238853845806" name="component" index="1Lso8e" />
+      <concept id="1239462176079" name="jetbrains.mps.baseLanguage.tuples.structure.NamedTupleComponentDeclaration" flags="ng" index="2lGYhJ">
+        <child id="1239462974287" name="type" index="2lK19J" />
+      </concept>
+      <concept id="1239559992092" name="jetbrains.mps.baseLanguage.tuples.structure.NamedTupleLiteral" flags="nn" index="2ry78W">
+        <reference id="1239560008022" name="tupleDeclaration" index="2ryb1Q" />
+        <child id="1239560910577" name="componentRef" index="2r_Bvh" />
+      </concept>
+      <concept id="1239560581441" name="jetbrains.mps.baseLanguage.tuples.structure.NamedTupleComponentReference" flags="ng" index="2r$n1x">
+        <reference id="1239560595302" name="componentDeclaration" index="2r$qp6" />
+        <child id="1239560837729" name="value" index="2r_lH1" />
       </concept>
     </language>
     <language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
-      <concept id="1215693861676" name="jetbrains.mps.baseLanguage.structure.BaseAssignmentExpression" flags="nn" index="d038R">
-        <child id="1068498886297" name="rValue" index="37vLTx" />
-        <child id="1068498886295" name="lValue" index="37vLTJ" />
-      </concept>
       <concept id="4836112446988635817" name="jetbrains.mps.baseLanguage.structure.UndefinedType" flags="in" index="2jxLKc" />
       <concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
       <concept id="1465982738277781862" name="jetbrains.mps.baseLanguage.structure.PlaceholderMember" flags="nn" index="2tJIrI" />
@@ -47,7 +48,6 @@
       <concept id="1145552977093" name="jetbrains.mps.baseLanguage.structure.GenericNewExpression" flags="nn" index="2ShNRf">
         <child id="1145553007750" name="creator" index="2ShVmc" />
       </concept>
-      <concept id="1070462154015" name="jetbrains.mps.baseLanguage.structure.StaticFieldDeclaration" flags="ig" index="Wx3nA" />
       <concept id="1070475926800" name="jetbrains.mps.baseLanguage.structure.StringLiteral" flags="nn" index="Xl_RD">
         <property id="1070475926801" name="value" index="Xl_RC" />
       </concept>
@@ -69,7 +69,6 @@
         <reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
       </concept>
       <concept id="1068498886292" name="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" flags="ir" index="37vLTG" />
-      <concept id="1068498886294" name="jetbrains.mps.baseLanguage.structure.AssignmentExpression" flags="nn" index="37vLTI" />
       <concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
         <child id="5680397130376446158" name="type" index="1tU5fm" />
       </concept>
@@ -209,20 +208,8 @@
       <concept id="1160612413312" name="jetbrains.mps.baseLanguage.collections.structure.AddElementOperation" flags="nn" index="TSZUe" />
       <concept id="1160666733551" name="jetbrains.mps.baseLanguage.collections.structure.AddAllElementsOperation" flags="nn" index="X8dFx" />
       <concept id="1201792049884" name="jetbrains.mps.baseLanguage.collections.structure.TranslateOperation" flags="nn" index="3goQfb" />
-      <concept id="1197683403723" name="jetbrains.mps.baseLanguage.collections.structure.MapType" flags="in" index="3rvAFt">
-        <child id="1197683466920" name="keyType" index="3rvQeY" />
-        <child id="1197683475734" name="valueType" index="3rvSg0" />
-      </concept>
-      <concept id="1197686869805" name="jetbrains.mps.baseLanguage.collections.structure.HashMapCreator" flags="nn" index="3rGOSV">
-        <child id="1197687026896" name="keyType" index="3rHrn6" />
-        <child id="1197687035757" name="valueType" index="3rHtpV" />
-      </concept>
       <concept id="1202120902084" name="jetbrains.mps.baseLanguage.collections.structure.WhereOperation" flags="nn" index="3zZkjj" />
       <concept id="1202128969694" name="jetbrains.mps.baseLanguage.collections.structure.SelectOperation" flags="nn" index="3$u5V9" />
-      <concept id="1197932370469" name="jetbrains.mps.baseLanguage.collections.structure.MapElement" flags="nn" index="3EllGN">
-        <child id="1197932505799" name="map" index="3ElQJh" />
-        <child id="1197932525128" name="key" index="3ElVtu" />
-      </concept>
       <concept id="1172254888721" name="jetbrains.mps.baseLanguage.collections.structure.ContainsOperation" flags="nn" index="3JPx81" />
       <concept id="1178894719932" name="jetbrains.mps.baseLanguage.collections.structure.DistinctOperation" flags="nn" index="1VAtEI" />
     </language>
@@ -603,25 +590,6 @@
   <node concept="312cEu" id="1XeVdf85BSu">
     <property role="TrG5h" value="DependencyStrengthUtils" />
     <node concept="2tJIrI" id="1XeVdf85BTQ" role="jymVt" />
-    <node concept="Wx3nA" id="1XeVdf8hfuh" role="jymVt">
-      <property role="TrG5h" value="referencedNodesList" />
-      <node concept="3rvAFt" id="1XeVdf8gYaL" role="1tU5fm">
-        <node concept="3Tqbb2" id="1XeVdf8gYee" role="3rvQeY">
-          <ref role="ehGHo" to="ryx8:6MUZd5Uj9wl" resolve="SingleComponentDependency" />
-        </node>
-        <node concept="2I9FWS" id="1XeVdf8ijLt" role="3rvSg0" />
-      </node>
-      <node concept="2ShNRf" id="1XeVdf8gYnT" role="33vP2m">
-        <node concept="3rGOSV" id="1XeVdf8gYQy" role="2ShVmc">
-          <node concept="3Tqbb2" id="1XeVdf8gYYu" role="3rHrn6">
-            <ref role="ehGHo" to="ryx8:6MUZd5Uj9wl" resolve="SingleComponentDependency" />
-          </node>
-          <node concept="2I9FWS" id="1XeVdf8ilqs" role="3rHtpV" />
-        </node>
-      </node>
-      <node concept="3Tm1VV" id="1XeVdf8hnpu" role="1B3o_S" />
-    </node>
-    <node concept="2tJIrI" id="1XeVdf85BTS" role="jymVt" />
     <node concept="2YIFZL" id="1XeVdf8k46E" role="jymVt">
       <property role="TrG5h" value="getOrComputeReferencedNodesModelsAndModulesOrInstantiatedConcepts" />
       <node concept="3clFbS" id="1XeVdf8k46F" role="3clF47">
@@ -747,32 +715,31 @@
             </node>
           </node>
         </node>
-        <node concept="3clFbF" id="1XeVdf8kdju" role="3cqZAp">
-          <node concept="1Ls8ON" id="1XeVdf8kdjs" role="3clFbG">
-            <node concept="37vLTw" id="1XeVdf8kdMB" role="1Lso8e">
-              <ref role="3cqZAo" node="1XeVdf8iUjD" resolve="referencedNodes" />
+        <node concept="3clFbF" id="3kvj3Brifzn" role="3cqZAp">
+          <node concept="2ry78W" id="3kvj3Brifzl" role="3clFbG">
+            <ref role="2ryb1Q" node="3kvj3BricPs" resolve="ReferencesInfo" />
+            <node concept="2r$n1x" id="3kvj3BrifYT" role="2r_Bvh">
+              <ref role="2r$qp6" node="3kvj3BricZi" resolve="nodes" />
+              <node concept="37vLTw" id="3kvj3BrigpG" role="2r_lH1">
+                <ref role="3cqZAo" node="1XeVdf8iUjD" resolve="referencedNodes" />
+              </node>
             </node>
-            <node concept="37vLTw" id="1XeVdf8keee" role="1Lso8e">
-              <ref role="3cqZAo" node="1XeVdf8j9YB" resolve="referencedModels" />
+            <node concept="2r$n1x" id="3kvj3Brigpg" role="2r_Bvh">
+              <ref role="2r$qp6" node="3kvj3BridU5" resolve="models" />
+              <node concept="37vLTw" id="3kvj3Brihn7" role="2r_lH1">
+                <ref role="3cqZAo" node="1XeVdf8j9YB" resolve="referencedModels" />
+              </node>
             </node>
-            <node concept="37vLTw" id="1XeVdf8keEK" role="1Lso8e">
-              <ref role="3cqZAo" node="1XeVdf8jlbI" resolve="referencedModules" />
+            <node concept="2r$n1x" id="3kvj3Briirm" role="2r_Bvh">
+              <ref role="2r$qp6" node="3kvj3Briejf" resolve="modules" />
+              <node concept="37vLTw" id="3kvj3Brij8e" role="2r_lH1">
+                <ref role="3cqZAo" node="1XeVdf8jlbI" resolve="referencedModules" />
+              </node>
             </node>
           </node>
         </node>
       </node>
       <node concept="3Tm1VV" id="1XeVdf8k478" role="1B3o_S" />
-      <node concept="1LlUBW" id="1XeVdf8kbTq" role="3clF45">
-        <node concept="2I9FWS" id="1XeVdf8kchX" role="1Lm7xW" />
-        <node concept="_YKpA" id="1XeVdf8kcEr" role="1Lm7xW">
-          <node concept="H_c77" id="1XeVdf8kcQO" role="_ZDj9" />
-        </node>
-        <node concept="_YKpA" id="1XeVdf8kd3s" role="1Lm7xW">
-          <node concept="3uibUv" id="1XeVdf8kdil" role="_ZDj9">
-            <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
-          </node>
-        </node>
-      </node>
       <node concept="37vLTG" id="1XeVdf8k47a" role="3clF46">
         <property role="TrG5h" value="componentRef" />
         <node concept="3Tqbb2" id="1XeVdf8k47b" role="1tU5fm">
@@ -785,6 +752,9 @@
           <ref role="3uigEE" to="lui2:~SRepository" resolve="SRepository" />
         </node>
       </node>
+      <node concept="3uibUv" id="3kvj3BrieSn" role="3clF45">
+        <ref role="3uigEE" node="3kvj3BricPs" resolve="ReferencesInfo" />
+      </node>
     </node>
     <node concept="2tJIrI" id="1XeVdf8k3Y4" role="jymVt" />
     <node concept="2YIFZL" id="1XeVdf85BYw" role="jymVt">
@@ -794,12 +764,12 @@
           <node concept="3cpWsn" id="1XeVdf8hj5D" role="3cpWs9">
             <property role="TrG5h" value="coupling" />
             <node concept="2I9FWS" id="1XeVdf8ily_" role="1tU5fm" />
-            <node concept="3EllGN" id="1XeVdf8hj5E" role="33vP2m">
-              <node concept="37vLTw" id="1XeVdf8hj5F" role="3ElVtu">
+            <node concept="2OqwBi" id="4n1yOK3eLDa" role="33vP2m">
+              <node concept="37vLTw" id="4n1yOK3eLgo" role="2Oq$k0">
                 <ref role="3cqZAo" node="1XeVdf85C1Y" resolve="componentRef" />
               </node>
-              <node concept="37vLTw" id="1XeVdf8hj5G" role="3ElQJh">
-                <ref role="3cqZAo" node="1XeVdf8hfuh" resolve="referencedNodesList" />
+              <node concept="2qgKlT" id="4n1yOK3eM5o" role="2OqNvi">
+                <ref role="37wK5l" to="lm2w:4n1yOK3eHll" resolve="getReferencedNodes" />
               </node>
             </node>
           </node>
@@ -834,23 +804,21 @@
             </node>
           </node>
         </node>
-        <node concept="3clFbF" id="1XeVdf8hjWW" role="3cqZAp">
-          <node concept="37vLTI" id="1XeVdf8hlPO" role="3clFbG">
-            <node concept="2OqwBi" id="1XeVdf8j0iI" role="37vLTx">
-              <node concept="2OqwBi" id="1XeVdf8iYeZ" role="2Oq$k0">
-                <node concept="37vLTw" id="1XeVdf8hlYL" role="2Oq$k0">
-                  <ref role="3cqZAo" node="1XeVdf8hjEC" resolve="myReferencedNodes" />
-                </node>
-                <node concept="1VAtEI" id="1XeVdf8iZfb" role="2OqNvi" />
-              </node>
-              <node concept="ANE8D" id="1XeVdf8j0Ra" role="2OqNvi" />
+        <node concept="3clFbF" id="4n1yOK3eNX1" role="3cqZAp">
+          <node concept="2OqwBi" id="4n1yOK3eOnh" role="3clFbG">
+            <node concept="37vLTw" id="4n1yOK3eNWZ" role="2Oq$k0">
+              <ref role="3cqZAo" node="1XeVdf85C1Y" resolve="componentRef" />
             </node>
-            <node concept="3EllGN" id="1XeVdf8hkq$" role="37vLTJ">
-              <node concept="37vLTw" id="1XeVdf8hkD1" role="3ElVtu">
-                <ref role="3cqZAo" node="1XeVdf85C1Y" resolve="componentRef" />
-              </node>
-              <node concept="37vLTw" id="1XeVdf8hjWU" role="3ElQJh">
-                <ref role="3cqZAo" node="1XeVdf8hfuh" resolve="referencedNodesList" />
+            <node concept="2qgKlT" id="4n1yOK3eOLB" role="2OqNvi">
+              <ref role="37wK5l" to="lm2w:4n1yOK3eIYG" resolve="setReferencedNodes" />
+              <node concept="2OqwBi" id="4n1yOK3ePee" role="37wK5m">
+                <node concept="2OqwBi" id="4n1yOK3ePef" role="2Oq$k0">
+                  <node concept="37vLTw" id="4n1yOK3ePeg" role="2Oq$k0">
+                    <ref role="3cqZAo" node="1XeVdf8hjEC" resolve="myReferencedNodes" />
+                  </node>
+                  <node concept="1VAtEI" id="4n1yOK3ePeh" role="2OqNvi" />
+                </node>
+                <node concept="ANE8D" id="4n1yOK3ePei" role="2OqNvi" />
               </node>
             </node>
           </node>
@@ -1193,17 +1161,15 @@
                       </node>
                     </node>
                   </node>
-                  <node concept="3clFbF" id="1XeVdf8hCMF" role="3cqZAp">
-                    <node concept="37vLTI" id="1XeVdf8hEN$" role="3clFbG">
-                      <node concept="37vLTw" id="1XeVdf8hEUo" role="37vLTx">
-                        <ref role="3cqZAo" node="1XeVdf8hCvG" resolve="referencedNodes" />
+                  <node concept="3clFbF" id="4n1yOK3eQ1N" role="3cqZAp">
+                    <node concept="2OqwBi" id="4n1yOK3eQ5S" role="3clFbG">
+                      <node concept="37vLTw" id="4n1yOK3eQ1L" role="2Oq$k0">
+                        <ref role="3cqZAo" node="1XeVdf8hChb" resolve="it" />
                       </node>
-                      <node concept="3EllGN" id="1XeVdf8hDjQ" role="37vLTJ">
-                        <node concept="37vLTw" id="1XeVdf8hD$d" role="3ElVtu">
-                          <ref role="3cqZAo" node="1XeVdf8hChb" resolve="it" />
-                        </node>
-                        <node concept="37vLTw" id="1XeVdf8hCMD" role="3ElQJh">
-                          <ref role="3cqZAo" node="1XeVdf8hfuh" resolve="referencedNodesList" />
+                      <node concept="2qgKlT" id="4n1yOK3eQeX" role="2OqNvi">
+                        <ref role="37wK5l" to="lm2w:4n1yOK3eIYG" resolve="setReferencedNodes" />
+                        <node concept="37vLTw" id="4n1yOK3eQqu" role="37wK5m">
+                          <ref role="3cqZAo" node="1XeVdf8hCvG" resolve="referencedNodes" />
                         </node>
                       </node>
                     </node>
@@ -1236,5 +1202,27 @@
     <node concept="2tJIrI" id="1XeVdf8h2eu" role="jymVt" />
     <node concept="3Tm1VV" id="1XeVdf85BSv" role="1B3o_S" />
   </node>
+  <node concept="2fD8I5" id="3kvj3BricPs">
+    <property role="TrG5h" value="ReferencesInfo" />
+    <node concept="2lGYhJ" id="3kvj3BricZi" role="2pHZQ9">
+      <property role="TrG5h" value="nodes" />
+      <node concept="2I9FWS" id="3kvj3BridDp" role="2lK19J" />
+    </node>
+    <node concept="2lGYhJ" id="3kvj3BridU5" role="2pHZQ9">
+      <property role="TrG5h" value="models" />
+      <node concept="_YKpA" id="3kvj3Brie2M" role="2lK19J">
+        <node concept="H_c77" id="3kvj3Brie3w" role="_ZDj9" />
+      </node>
+    </node>
+    <node concept="2lGYhJ" id="3kvj3Briejf" role="2pHZQ9">
+      <property role="TrG5h" value="modules" />
+      <node concept="_YKpA" id="3kvj3Briejq" role="2lK19J">
+        <node concept="3uibUv" id="3kvj3BrieqY" role="_ZDj9">
+          <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
+        </node>
+      </node>
+    </node>
+    <node concept="3Tm1VV" id="3kvj3BricPt" role="1B3o_S" />
+  </node>
 </model>
 
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/org.mpsqa.arch.mpl b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/org.mpsqa.arch.mpl
index 4e8f3ff0..825ea08a 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/org.mpsqa.arch.mpl
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/org.mpsqa.arch.mpl
@@ -21,6 +21,7 @@
     <dependency reexport="false">1ed103c3-3aa6-49b7-9c21-6765ee11f224(MPS.Editor)</dependency>
     <dependency reexport="false">c7fb639f-be78-4307-89b0-b5959c3fa8c8(jetbrains.mps.lang.text)</dependency>
     <dependency reexport="false">86ef8290-12bb-4ca7-947f-093788f263a9(jetbrains.mps.lang.project)</dependency>
+    <dependency reexport="false">20c6e580-bdc5-4067-8049-d7e3265a86de(jetbrains.mps.typesystemEngine)</dependency>
   </dependencies>
   <languageVersions>
     <language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
@@ -83,6 +84,7 @@
     <module reference="c72da2b9-7cce-4447-8389-f407dc1158b7(jetbrains.mps.lang.structure)" version="0" />
     <module reference="c7fb639f-be78-4307-89b0-b5959c3fa8c8(jetbrains.mps.lang.text)" version="0" />
     <module reference="9ded098b-ad6a-4657-bfd9-48636cfe8bc3(jetbrains.mps.lang.traceable)" version="0" />
+    <module reference="20c6e580-bdc5-4067-8049-d7e3265a86de(jetbrains.mps.typesystemEngine)" version="0" />
     <module reference="6c101563-ba1f-458d-b298-a75634941e0c(org.mpsqa.arch)" version="0" />
   </dependencyVersions>
   <extendedLanguages />

From e2ad49a43d74396eb09b79a6f249b4aad56e2f91 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Fri, 20 Sep 2024 07:38:14 +0200
Subject: [PATCH 08/42] mpsqa.arch: use simpler terms

---
 .../org.mpsqa.arch/models/org.mpsqa.arch.editor.mps         | 4 ++--
 .../org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps     | 6 +++---
 .../languages/org.mpsqa.arch/models/org.mpsqa.arch.util.mps | 2 +-
 .../models/org.mpsqa.arch.pluginSolution.plugin.mps         | 6 +++---
 4 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
index fa17d448..1ef6de8b 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
@@ -1117,7 +1117,7 @@
           <node concept="3clFbS" id="1XeVdf8kQ8e" role="2VODD2">
             <node concept="3clFbF" id="1XeVdf8kQ9s" role="3cqZAp">
               <node concept="Xl_RD" id="1XeVdf8kQ9r" role="3clFbG">
-                <property role="Xl_RC" value="Compute Couplings" />
+                <property role="Xl_RC" value="Update dependencies strengths" />
               </node>
             </node>
           </node>
@@ -1126,7 +1126,7 @@
           <node concept="3clFbS" id="1XeVdf8kQ8g" role="2VODD2">
             <node concept="3clFbF" id="1XeVdf8hFks" role="3cqZAp">
               <node concept="2YIFZM" id="1XeVdf8hFpJ" role="3clFbG">
-                <ref role="37wK5l" to="u41u:1XeVdf8hxz0" resolve="updateDependenciesStrenghts" />
+                <ref role="37wK5l" to="u41u:1XeVdf8hxz0" resolve="updateDependenciesStrengths" />
                 <ref role="1Pybhc" to="u41u:1XeVdf85BSu" resolve="DependencyStrengthUtils" />
                 <node concept="7Obwk" id="1XeVdf8kRdf" role="37wK5m" />
                 <node concept="2OqwBi" id="GdL2Wd5$8q" role="37wK5m">
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps
index bc160522..46acecbc 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps
@@ -533,13 +533,13 @@
     </node>
   </node>
   <node concept="2S6QgY" id="1XeVdf8hFBy">
-    <property role="TrG5h" value="updateDependenciesStrengts" />
+    <property role="TrG5h" value="updateDependenciesStrengths" />
     <ref role="2ZfgGC" to="ryx8:6MUZd5UjGNW" resolve="IComponentLike" />
     <node concept="2S6ZIM" id="1XeVdf8hFBz" role="2ZfVej">
       <node concept="3clFbS" id="1XeVdf8hFB$" role="2VODD2">
         <node concept="3clFbF" id="1XeVdf8hFIp" role="3cqZAp">
           <node concept="Xl_RD" id="1XeVdf8hFIo" role="3clFbG">
-            <property role="Xl_RC" value="Update Coupling Strengths" />
+            <property role="Xl_RC" value="Update Dependencies Strengths" />
           </node>
         </node>
       </node>
@@ -548,7 +548,7 @@
       <node concept="3clFbS" id="1XeVdf8hFBA" role="2VODD2">
         <node concept="3clFbF" id="1XeVdf8hN2H" role="3cqZAp">
           <node concept="2YIFZM" id="1XeVdf8hN2I" role="3clFbG">
-            <ref role="37wK5l" to="u41u:1XeVdf8hxz0" resolve="updateDependenciesStrenghts" />
+            <ref role="37wK5l" to="u41u:1XeVdf8hxz0" resolve="updateDependenciesStrengths" />
             <ref role="1Pybhc" to="u41u:1XeVdf85BSu" resolve="DependencyStrengthUtils" />
             <node concept="2Sf5sV" id="1XeVdf8hN2J" role="37wK5m" />
             <node concept="2OqwBi" id="GdL2Wd5$Ry" role="37wK5m">
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.util.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.util.mps
index 4e8834e3..b6d4af34 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.util.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.util.mps
@@ -1127,7 +1127,7 @@
     </node>
     <node concept="2tJIrI" id="1XeVdf8hxi8" role="jymVt" />
     <node concept="2YIFZL" id="1XeVdf8hxz0" role="jymVt">
-      <property role="TrG5h" value="updateDependenciesStrenghts" />
+      <property role="TrG5h" value="updateDependenciesStrengths" />
       <node concept="3clFbS" id="1XeVdf8hxz3" role="3clF47">
         <node concept="3clFbF" id="1XeVdf8hxHv" role="3cqZAp">
           <node concept="2OqwBi" id="1XeVdf8h$fL" role="3clFbG">
diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
index 98b5b9e8..90db2f20 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
@@ -444,7 +444,7 @@
   <node concept="2DaZZR" id="1tkdAPw35e3" />
   <node concept="sE7Ow" id="1tkdAPw35e4">
     <property role="TrG5h" value="OpenPlantUmlOnArchitectureSpecification" />
-    <property role="2uzpH1" value="Visualize DSLs Architecture with PlantUML" />
+    <property role="2uzpH1" value="Visualize DSLs Architecture" />
     <property role="2YLI8m" value="6u2MFnph2wS/none" />
     <node concept="tnohg" id="1tkdAPw35e5" role="tncku">
       <node concept="3clFbS" id="1tkdAPw35e6" role="2VODD2">
@@ -3126,7 +3126,7 @@
                 <node concept="1pGfFk" id="1Nl9e7Dy8ux" role="2ShVmc">
                   <ref role="37wK5l" to="dxuu:~JLabel.&lt;init&gt;(java.lang.String)" resolve="JLabel" />
                   <node concept="Xl_RD" id="1Nl9e7Dy8uy" role="37wK5m">
-                    <property role="Xl_RC" value="Max imbrication depth:" />
+                    <property role="Xl_RC" value="Maximum included depth:" />
                   </node>
                 </node>
               </node>
@@ -3540,7 +3540,7 @@
   </node>
   <node concept="sE7Ow" id="1Nl9e7Dz$j_">
     <property role="TrG5h" value="OpenPlantUmlOnComponentDefinition" />
-    <property role="2uzpH1" value="Visualize Component with PlantUML" />
+    <property role="2uzpH1" value="Visualize Component" />
     <property role="2YLI8m" value="6u2MFnph2wS/none" />
     <node concept="tnohg" id="1Nl9e7Dz$jA" role="tncku">
       <node concept="3clFbS" id="1Nl9e7Dz$jB" role="2VODD2">

From 4708e86c8f1832b43d3dd7b9361a01167a01f46a Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Fri, 20 Sep 2024 07:46:28 +0200
Subject: [PATCH 09/42] mpsqa.arch: improve tests

---
 ...qa.arch._010_simple_dependencies@tests.mps | 30 +++++++++++++++----
 1 file changed, 24 insertions(+), 6 deletions(-)

diff --git a/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps b/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps
index 336e2b2d..7a7515b5 100644
--- a/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps
+++ b/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps
@@ -149,14 +149,23 @@
                 <property role="1XxBO9" value="test.org.mpsqa.arch.ext" />
               </node>
             </node>
-            <node concept="7CXmI" id="6ESRMYIDD96" role="lGtFl">
-              <node concept="1TM$A" id="6ESRMYIDD97" role="7EUXB" />
-            </node>
             <node concept="mXA1B" id="fm3v0X0THy" role="1Rkc$q">
               <node concept="mXAj4" id="fm3v0X0TH$" role="mXvOw">
                 <ref role="mXAj7" node="fm3v0X0Tm$" resolve="test.org.mpsqa.arch.ext.ext" />
               </node>
             </node>
+            <node concept="7CXmI" id="36o1tfmXjY7" role="lGtFl">
+              <node concept="1TM$A" id="36o1tfmXjZs" role="7EUXB">
+                <node concept="2PYRI3" id="36o1tfmXjZt" role="3lydEf">
+                  <ref role="39XzEq" to="r5ch:6ESRMYIDhNZ" />
+                </node>
+              </node>
+              <node concept="1TM$A" id="36o1tfmXjZu" role="7EUXB">
+                <node concept="2PYRI3" id="36o1tfmXjZv" role="3lydEf">
+                  <ref role="39XzEq" to="r5ch:6ESRMYIDhNZ" />
+                </node>
+              </node>
+            </node>
           </node>
         </node>
         <node concept="7CXmI" id="6ESRMYIDD9b" role="lGtFl">
@@ -194,14 +203,23 @@
                 <property role="1XxBO9" value="test.org.mpsqa.arch" />
               </node>
             </node>
-            <node concept="7CXmI" id="6ESRMYIDZWH" role="lGtFl">
-              <node concept="1TM$A" id="6ESRMYIDZWI" role="7EUXB" />
-            </node>
             <node concept="mXA1B" id="fm3v0X0U4i" role="1Rkc$q">
               <node concept="mXAj4" id="fm3v0X0U4k" role="mXvOw">
                 <ref role="mXAj7" node="fm3v0X0U3b" resolve="jetbrains.mps.lang.test" />
               </node>
             </node>
+            <node concept="7CXmI" id="36o1tfmXkGb" role="lGtFl">
+              <node concept="1TM$A" id="36o1tfmXkHw" role="7EUXB">
+                <node concept="2PYRI3" id="36o1tfmXkHx" role="3lydEf">
+                  <ref role="39XzEq" to="r5ch:6ESRMYIDESa" />
+                </node>
+              </node>
+              <node concept="1TM$A" id="36o1tfmXkHy" role="7EUXB">
+                <node concept="2PYRI3" id="36o1tfmXkHz" role="3lydEf">
+                  <ref role="39XzEq" to="r5ch:6ESRMYIDhNZ" />
+                </node>
+              </node>
+            </node>
           </node>
         </node>
         <node concept="7CXmI" id="6ESRMYIDD9u" role="lGtFl">

From 4a7c4be5d96b6811661779a2d7467945cec3bbd9 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Mon, 23 Sep 2024 08:11:00 +0200
Subject: [PATCH 10/42] mpsqa.lint: fix linter results location info

---
 .../org.mpsqa.lint.generic.behavior.mps       | 514 ++++++++++++++----
 .../models/org.mpsqa.lint.generic.editor.mps  | 229 ++++++--
 .../org.mpsqa.lint.generic.structure.mps      |   5 +
 .../org.mpsqa.lint.generic.typesystem.mps     |  42 +-
 4 files changed, 636 insertions(+), 154 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
index cc13ad59..fe9f90cd 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
@@ -24,6 +24,9 @@
     <import index="lui2" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.module(MPS.OpenAPI/)" />
     <import index="qqy" ref="r:baac1a2f-1e52-45fa-95c5-02a3dfae441c(org.mpsqa.lint.generic.util)" />
     <import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" />
+    <import index="w1kc" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.smodel(MPS.Core/)" />
+    <import index="alof" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.project(MPS.Platform/)" />
+    <import index="dush" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.persistence(MPS.OpenAPI/)" />
     <import index="vdrq" ref="r:85354f47-14fd-40e6-a7cc-2d1aa842c4cd(jetbrains.mps.lang.text.behavior)" implicit="true" />
     <import index="tpcu" ref="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" implicit="true" />
   </imports>
@@ -57,6 +60,9 @@
       </concept>
       <concept id="4836112446988635817" name="jetbrains.mps.baseLanguage.structure.UndefinedType" flags="in" index="2jxLKc" />
       <concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
+      <concept id="8118189177080264853" name="jetbrains.mps.baseLanguage.structure.AlternativeType" flags="ig" index="nSUau">
+        <child id="8118189177080264854" name="alternative" index="nSUat" />
+      </concept>
       <concept id="1465982738277781862" name="jetbrains.mps.baseLanguage.structure.PlaceholderMember" flags="nn" index="2tJIrI" />
       <concept id="1154032098014" name="jetbrains.mps.baseLanguage.structure.AbstractLoopStatement" flags="nn" index="2LF5Ji">
         <child id="1154032183016" name="body" index="2LFqv$" />
@@ -74,6 +80,7 @@
       <concept id="1070475926800" name="jetbrains.mps.baseLanguage.structure.StringLiteral" flags="nn" index="Xl_RD">
         <property id="1070475926801" name="value" index="Xl_RC" />
       </concept>
+      <concept id="4952749571008284462" name="jetbrains.mps.baseLanguage.structure.CatchVariable" flags="ng" index="XOnhg" />
       <concept id="1081236700938" name="jetbrains.mps.baseLanguage.structure.StaticMethodDeclaration" flags="ig" index="2YIFZL" />
       <concept id="1081236700937" name="jetbrains.mps.baseLanguage.structure.StaticMethodCall" flags="nn" index="2YIFZM">
         <reference id="1144433194310" name="classConcept" index="1Pybhc" />
@@ -84,6 +91,9 @@
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+        <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
+      </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
         <reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
       </concept>
@@ -131,6 +141,7 @@
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
+      <concept id="1212685548494" name="jetbrains.mps.baseLanguage.structure.ClassCreator" flags="nn" index="1pGfFk" />
       <concept id="1107461130800" name="jetbrains.mps.baseLanguage.structure.Classifier" flags="ng" index="3pOWGL">
         <child id="5375687026011219971" name="member" index="jymVt" unordered="true" />
       </concept>
@@ -142,9 +153,18 @@
         <child id="1081773367579" name="rightExpression" index="3uHU7w" />
         <child id="1081773367580" name="leftExpression" index="3uHU7B" />
       </concept>
+      <concept id="3093926081414150598" name="jetbrains.mps.baseLanguage.structure.MultipleCatchClause" flags="ng" index="3uVAMA">
+        <child id="8276990574895933173" name="catchBody" index="1zc67A" />
+        <child id="8276990574895933172" name="throwable" index="1zc67B" />
+      </concept>
+      <concept id="1073239437375" name="jetbrains.mps.baseLanguage.structure.NotEqualsExpression" flags="nn" index="3y3z36" />
       <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
         <child id="1178549979242" name="visibility" index="1B3o_S" />
       </concept>
+      <concept id="5351203823916750322" name="jetbrains.mps.baseLanguage.structure.TryUniversalStatement" flags="nn" index="3J1_TO">
+        <child id="8276990574886367510" name="catchClause" index="1zxBo5" />
+        <child id="8276990574886367508" name="body" index="1zxBo7" />
+      </concept>
       <concept id="1163668896201" name="jetbrains.mps.baseLanguage.structure.TernaryOperatorExpression" flags="nn" index="3K4zz7">
         <child id="1163668914799" name="condition" index="3K4Cdx" />
         <child id="1163668922816" name="ifTrue" index="3K4E3e" />
@@ -716,7 +736,7 @@
                     <node concept="2pJxcG" id="78RogMCHrs6" role="2pJxcM">
                       <ref role="2pJxcJ" to="a1af:78RogMCGEW7" resolve="resultNodeModelId" />
                       <node concept="WxPPo" id="78RogMCHrs7" role="28ntcv">
-                        <node concept="2OqwBi" id="78RogMCHrs8" role="WxPPp">
+                        <node concept="2OqwBi" id="2I_DQhFbTJ" role="WxPPp">
                           <node concept="2OqwBi" id="78RogMCHrs9" role="2Oq$k0">
                             <node concept="2JrnkZ" id="78RogMCHrsa" role="2Oq$k0">
                               <node concept="2OqwBi" id="78RogMCHwou" role="2JrQYb">
@@ -731,14 +751,44 @@
                                 <node concept="I4A8Y" id="78RogMCHyZN" role="2OqNvi" />
                               </node>
                             </node>
-                            <node concept="liA8E" id="78RogMCHrse" role="2OqNvi">
-                              <ref role="37wK5l" to="mhbf:~SModel.getModelId()" resolve="getModelId" />
+                            <node concept="liA8E" id="2I_DQhF3TU" role="2OqNvi">
+                              <ref role="37wK5l" to="mhbf:~SModel.getReference()" resolve="getReference" />
+                            </node>
+                          </node>
+                          <node concept="liA8E" id="2I_DQhFhAn" role="2OqNvi">
+                            <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                    <node concept="2pJxcG" id="2I_DQhwFnn" role="2pJxcM">
+                      <ref role="2pJxcJ" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                      <node concept="3K4zz7" id="2I_DQhAlv6" role="28ntcv">
+                        <node concept="2OqwBi" id="2I_DQhAJB$" role="3K4E3e">
+                          <node concept="2OqwBi" id="2I_DQhAzue" role="2Oq$k0">
+                            <node concept="2GrUjf" id="2I_DQhAry5" role="2Oq$k0">
+                              <ref role="2Gs0qQ" node="6gY6GEDwgRS" resolve="r" />
+                            </node>
+                            <node concept="2sxana" id="2I_DQhADyx" role="2OqNvi">
+                              <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
                             </node>
                           </node>
-                          <node concept="liA8E" id="78RogMCHrsf" role="2OqNvi">
+                          <node concept="liA8E" id="2I_DQhANOC" role="2OqNvi">
                             <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
                           </node>
                         </node>
+                        <node concept="10Nm6u" id="2I_DQhAT24" role="3K4GZi" />
+                        <node concept="3y3z36" id="2I_DQhA8DW" role="3K4Cdx">
+                          <node concept="10Nm6u" id="2I_DQhAdkH" role="3uHU7w" />
+                          <node concept="2OqwBi" id="2I_DQhwRI_" role="3uHU7B">
+                            <node concept="2GrUjf" id="2I_DQhwKmO" role="2Oq$k0">
+                              <ref role="2Gs0qQ" node="6gY6GEDwgRS" resolve="r" />
+                            </node>
+                            <node concept="2sxana" id="2I_DQhwVEl" role="2OqNvi">
+                              <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
+                            </node>
+                          </node>
+                        </node>
                       </node>
                     </node>
                   </node>
@@ -1340,108 +1390,174 @@
     <node concept="2YIFZL" id="78RogMCHOPn" role="jymVt">
       <property role="TrG5h" value="findNodeById" />
       <node concept="3clFbS" id="78RogMCHLgO" role="3clF47">
-        <node concept="2Gpval" id="78RogMCGGKJ" role="3cqZAp">
-          <node concept="2GrKxI" id="78RogMCGGKO" role="2Gsz3X">
-            <property role="TrG5h" value="m" />
-          </node>
-          <node concept="3clFbS" id="78RogMCGGKY" role="2LFqv$">
-            <node concept="3clFbJ" id="78RogMCGGRh" role="3cqZAp">
-              <node concept="2OqwBi" id="78RogMCGIsc" role="3clFbw">
-                <node concept="2OqwBi" id="78RogMCGHBN" role="2Oq$k0">
-                  <node concept="2OqwBi" id="78RogMCGH6f" role="2Oq$k0">
-                    <node concept="2GrUjf" id="78RogMCGGVs" role="2Oq$k0">
-                      <ref role="2Gs0qQ" node="78RogMCGGKO" resolve="m" />
-                    </node>
-                    <node concept="liA8E" id="78RogMCGHsX" role="2OqNvi">
-                      <ref role="37wK5l" to="mhbf:~SModel.getModelId()" resolve="getModelId" />
+        <node concept="3J1_TO" id="4XPt_HarTg3" role="3cqZAp">
+          <node concept="3uVAMA" id="4XPt_HarToM" role="1zxBo5">
+            <node concept="XOnhg" id="4XPt_HarToN" role="1zc67B">
+              <property role="TrG5h" value="e" />
+              <node concept="nSUau" id="4XPt_HarToO" role="1tU5fm">
+                <node concept="3uibUv" id="4XPt_HarTqI" role="nSUat">
+                  <ref role="3uigEE" to="wyt6:~Exception" resolve="Exception" />
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbS" id="4XPt_HarToP" role="1zc67A">
+              <node concept="3cpWs8" id="4XPt_Hasg_9" role="3cqZAp">
+                <node concept="3cpWsn" id="4XPt_Hasg_a" role="3cpWs9">
+                  <property role="TrG5h" value="project" />
+                  <node concept="3uibUv" id="4XPt_Has81y" role="1tU5fm">
+                    <ref role="3uigEE" to="z1c4:~Project" resolve="Project" />
+                  </node>
+                  <node concept="2YIFZM" id="4XPt_Hasg_b" role="33vP2m">
+                    <ref role="37wK5l" to="alof:~ProjectHelper.getProject(org.jetbrains.mps.openapi.module.SRepository)" resolve="getProject" />
+                    <ref role="1Pybhc" to="alof:~ProjectHelper" resolve="ProjectHelper" />
+                    <node concept="37vLTw" id="4XPt_Hasg_c" role="37wK5m">
+                      <ref role="3cqZAo" node="2I_DQhG0jj" resolve="repository" />
                     </node>
                   </node>
-                  <node concept="liA8E" id="78RogMCGI29" role="2OqNvi">
-                    <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
+                </node>
+              </node>
+              <node concept="3clFbJ" id="4XPt_HasjbG" role="3cqZAp">
+                <node concept="3clFbS" id="4XPt_HasjbI" role="3clFbx">
+                  <node concept="3cpWs6" id="4XPt_HasltE" role="3cqZAp">
+                    <node concept="10Nm6u" id="4XPt_HaslLV" role="3cqZAk" />
                   </node>
                 </node>
-                <node concept="liA8E" id="78RogMCGJpO" role="2OqNvi">
-                  <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
-                  <node concept="37vLTw" id="78RogMCHMIi" role="37wK5m">
-                    <ref role="3cqZAo" node="78RogMCHLXq" resolve="resultNodeModelId" />
+                <node concept="3clFbC" id="4XPt_HaskBc" role="3clFbw">
+                  <node concept="10Nm6u" id="4XPt_Hasl8I" role="3uHU7w" />
+                  <node concept="37vLTw" id="4XPt_HasjMr" role="3uHU7B">
+                    <ref role="3cqZAo" node="4XPt_Hasg_a" resolve="project" />
                   </node>
                 </node>
               </node>
-              <node concept="3clFbS" id="78RogMCGGRj" role="3clFbx">
-                <node concept="3cpWs8" id="78RogMCGLi0" role="3cqZAp">
-                  <node concept="3cpWsn" id="78RogMCGLi3" role="3cpWs9">
-                    <property role="TrG5h" value="model" />
-                    <node concept="H_c77" id="78RogMCGLhZ" role="1tU5fm" />
-                    <node concept="2GrUjf" id="78RogMCGLwW" role="33vP2m">
-                      <ref role="2Gs0qQ" node="78RogMCGGKO" resolve="m" />
-                    </node>
-                  </node>
+              <node concept="2Gpval" id="78RogMCGGKJ" role="3cqZAp">
+                <node concept="2GrKxI" id="78RogMCGGKO" role="2Gsz3X">
+                  <property role="TrG5h" value="m" />
                 </node>
-                <node concept="3cpWs6" id="78RogMCGLAJ" role="3cqZAp">
-                  <node concept="2OqwBi" id="78RogMCGOsz" role="3cqZAk">
-                    <node concept="2OqwBi" id="78RogMCGM8h" role="2Oq$k0">
-                      <node concept="37vLTw" id="78RogMCGLL5" role="2Oq$k0">
-                        <ref role="3cqZAo" node="78RogMCGLi3" resolve="model" />
+                <node concept="3clFbS" id="78RogMCGGKY" role="2LFqv$">
+                  <node concept="3clFbJ" id="78RogMCGGRh" role="3cqZAp">
+                    <node concept="2OqwBi" id="78RogMCGIsc" role="3clFbw">
+                      <node concept="2OqwBi" id="78RogMCGHBN" role="2Oq$k0">
+                        <node concept="2OqwBi" id="78RogMCGH6f" role="2Oq$k0">
+                          <node concept="2GrUjf" id="78RogMCGGVs" role="2Oq$k0">
+                            <ref role="2Gs0qQ" node="78RogMCGGKO" resolve="m" />
+                          </node>
+                          <node concept="liA8E" id="78RogMCGHsX" role="2OqNvi">
+                            <ref role="37wK5l" to="mhbf:~SModel.getModelId()" resolve="getModelId" />
+                          </node>
+                        </node>
+                        <node concept="liA8E" id="78RogMCGI29" role="2OqNvi">
+                          <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
+                        </node>
+                      </node>
+                      <node concept="liA8E" id="78RogMCGJpO" role="2OqNvi">
+                        <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
+                        <node concept="37vLTw" id="78RogMCHMIi" role="37wK5m">
+                          <ref role="3cqZAo" node="78RogMCHLXq" resolve="resultNodeModelId" />
+                        </node>
                       </node>
-                      <node concept="2SmgA7" id="78RogMCGMef" role="2OqNvi" />
                     </node>
-                    <node concept="1z4cxt" id="78RogMCGPYW" role="2OqNvi">
-                      <node concept="1bVj0M" id="78RogMCGPYY" role="23t8la">
-                        <node concept="3clFbS" id="78RogMCGPYZ" role="1bW5cS">
-                          <node concept="3clFbF" id="78RogMCGQiD" role="3cqZAp">
-                            <node concept="2OqwBi" id="78RogMCGSsL" role="3clFbG">
-                              <node concept="2OqwBi" id="78RogMCGRG9" role="2Oq$k0">
-                                <node concept="2OqwBi" id="78RogMCGR7M" role="2Oq$k0">
-                                  <node concept="2JrnkZ" id="78RogMCGQJZ" role="2Oq$k0">
-                                    <node concept="37vLTw" id="78RogMCGQiC" role="2JrQYb">
-                                      <ref role="3cqZAo" node="78RogMCGPZ0" resolve="it" />
+                    <node concept="3clFbS" id="78RogMCGGRj" role="3clFbx">
+                      <node concept="3cpWs8" id="78RogMCGLi0" role="3cqZAp">
+                        <node concept="3cpWsn" id="78RogMCGLi3" role="3cpWs9">
+                          <property role="TrG5h" value="model" />
+                          <node concept="H_c77" id="78RogMCGLhZ" role="1tU5fm" />
+                          <node concept="2GrUjf" id="78RogMCGLwW" role="33vP2m">
+                            <ref role="2Gs0qQ" node="78RogMCGGKO" resolve="m" />
+                          </node>
+                        </node>
+                      </node>
+                      <node concept="3cpWs6" id="78RogMCGLAJ" role="3cqZAp">
+                        <node concept="2OqwBi" id="78RogMCGOsz" role="3cqZAk">
+                          <node concept="2OqwBi" id="78RogMCGM8h" role="2Oq$k0">
+                            <node concept="37vLTw" id="78RogMCGLL5" role="2Oq$k0">
+                              <ref role="3cqZAo" node="78RogMCGLi3" resolve="model" />
+                            </node>
+                            <node concept="2SmgA7" id="78RogMCGMef" role="2OqNvi" />
+                          </node>
+                          <node concept="1z4cxt" id="78RogMCGPYW" role="2OqNvi">
+                            <node concept="1bVj0M" id="78RogMCGPYY" role="23t8la">
+                              <node concept="3clFbS" id="78RogMCGPYZ" role="1bW5cS">
+                                <node concept="3clFbF" id="78RogMCGQiD" role="3cqZAp">
+                                  <node concept="2OqwBi" id="78RogMCGSsL" role="3clFbG">
+                                    <node concept="2OqwBi" id="78RogMCGRG9" role="2Oq$k0">
+                                      <node concept="2OqwBi" id="78RogMCGR7M" role="2Oq$k0">
+                                        <node concept="2JrnkZ" id="78RogMCGQJZ" role="2Oq$k0">
+                                          <node concept="37vLTw" id="78RogMCGQiC" role="2JrQYb">
+                                            <ref role="3cqZAo" node="78RogMCGPZ0" resolve="it" />
+                                          </node>
+                                        </node>
+                                        <node concept="liA8E" id="78RogMCGRq_" role="2OqNvi">
+                                          <ref role="37wK5l" to="mhbf:~SNode.getNodeId()" resolve="getNodeId" />
+                                        </node>
+                                      </node>
+                                      <node concept="liA8E" id="78RogMCGRZr" role="2OqNvi">
+                                        <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
+                                      </node>
+                                    </node>
+                                    <node concept="liA8E" id="78RogMCGT6K" role="2OqNvi">
+                                      <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
+                                      <node concept="37vLTw" id="78RogMCHN5i" role="37wK5m">
+                                        <ref role="3cqZAo" node="78RogMCHM7D" resolve="resultNodeId" />
+                                      </node>
                                     </node>
-                                  </node>
-                                  <node concept="liA8E" id="78RogMCGRq_" role="2OqNvi">
-                                    <ref role="37wK5l" to="mhbf:~SNode.getNodeId()" resolve="getNodeId" />
                                   </node>
                                 </node>
-                                <node concept="liA8E" id="78RogMCGRZr" role="2OqNvi">
-                                  <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
-                                </node>
                               </node>
-                              <node concept="liA8E" id="78RogMCGT6K" role="2OqNvi">
-                                <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
-                                <node concept="37vLTw" id="78RogMCHN5i" role="37wK5m">
-                                  <ref role="3cqZAo" node="78RogMCHM7D" resolve="resultNodeId" />
-                                </node>
+                              <node concept="Rh6nW" id="78RogMCGPZ0" role="1bW2Oz">
+                                <property role="TrG5h" value="it" />
+                                <node concept="2jxLKc" id="78RogMCGPZ1" role="1tU5fm" />
                               </node>
                             </node>
                           </node>
                         </node>
-                        <node concept="Rh6nW" id="78RogMCGPZ0" role="1bW2Oz">
-                          <property role="TrG5h" value="it" />
-                          <node concept="2jxLKc" id="78RogMCGPZ1" role="1tU5fm" />
-                        </node>
                       </node>
                     </node>
                   </node>
                 </node>
+                <node concept="2OqwBi" id="4XPt_Has6i8" role="2GsD0m">
+                  <node concept="37vLTw" id="4XPt_Hasg_d" role="2Oq$k0">
+                    <ref role="3cqZAo" node="4XPt_Hasg_a" resolve="project" />
+                  </node>
+                  <node concept="liA8E" id="4XPt_Has7GX" role="2OqNvi">
+                    <ref role="37wK5l" to="z1c4:~Project.getProjectModels()" resolve="getProjectModels" />
+                  </node>
+                </node>
               </node>
             </node>
           </node>
-          <node concept="2OqwBi" id="78RogMCGGqQ" role="2GsD0m">
-            <node concept="37vLTw" id="78RogMCGG78" role="2Oq$k0">
-              <ref role="3cqZAo" node="78RogMCHLOw" resolve="proj" />
-            </node>
-            <node concept="liA8E" id="78RogMCGGHU" role="2OqNvi">
-              <ref role="37wK5l" to="z1c4:~Project.getProjectModels()" resolve="getProjectModels" />
+          <node concept="3clFbS" id="4XPt_HarTg5" role="1zxBo7">
+            <node concept="3cpWs6" id="4XPt_HarTDJ" role="3cqZAp">
+              <node concept="2OqwBi" id="2I_DQhCwgY" role="3cqZAk">
+                <node concept="2ShNRf" id="2I_DQhCtFU" role="2Oq$k0">
+                  <node concept="1pGfFk" id="2I_DQhCvfd" role="2ShVmc">
+                    <property role="373rjd" value="true" />
+                    <ref role="37wK5l" to="w1kc:~SNodePointer.&lt;init&gt;(java.lang.String,java.lang.String)" resolve="SNodePointer" />
+                    <node concept="37vLTw" id="2I_DQhCvqF" role="37wK5m">
+                      <ref role="3cqZAo" node="78RogMCHLXq" resolve="resultNodeModelId" />
+                    </node>
+                    <node concept="37vLTw" id="2I_DQhCvWI" role="37wK5m">
+                      <ref role="3cqZAo" node="78RogMCHM7D" resolve="resultNodeId" />
+                    </node>
+                  </node>
+                </node>
+                <node concept="liA8E" id="2I_DQhCwAL" role="2OqNvi">
+                  <ref role="37wK5l" to="w1kc:~SNodePointer.resolve(org.jetbrains.mps.openapi.module.SRepository)" resolve="resolve" />
+                  <node concept="37vLTw" id="2I_DQhG0vM" role="37wK5m">
+                    <ref role="3cqZAo" node="2I_DQhG0jj" resolve="repository" />
+                  </node>
+                </node>
+              </node>
             </node>
           </node>
         </node>
-        <node concept="3cpWs6" id="78RogMCHNmQ" role="3cqZAp">
-          <node concept="10Nm6u" id="78RogMCHNxJ" role="3cqZAk" />
+        <node concept="3cpWs6" id="4XPt_HasnCa" role="3cqZAp">
+          <node concept="10Nm6u" id="4XPt_HasnEp" role="3cqZAk" />
         </node>
       </node>
-      <node concept="37vLTG" id="78RogMCHLOw" role="3clF46">
-        <property role="TrG5h" value="proj" />
-        <node concept="3uibUv" id="78RogMCHLOv" role="1tU5fm">
-          <ref role="3uigEE" to="z1c4:~Project" resolve="Project" />
+      <node concept="37vLTG" id="2I_DQhG0jj" role="3clF46">
+        <property role="TrG5h" value="repository" />
+        <node concept="3uibUv" id="2I_DQhG0rg" role="1tU5fm">
+          <ref role="3uigEE" to="lui2:~SRepository" resolve="SRepository" />
         </node>
       </node>
       <node concept="37vLTG" id="78RogMCHLXq" role="3clF46">
@@ -1669,38 +1785,246 @@
       <node concept="17QB3L" id="4Wm$DJ9cjic" role="3clF45" />
       <node concept="3clFbS" id="4Wm$DJ9cjhZ" role="3clF47">
         <node concept="3clFbF" id="4Wm$DJ9cjiS" role="3cqZAp">
-          <node concept="3cpWs3" id="4Wm$DJ9cklg" role="3clFbG">
-            <node concept="2OqwBi" id="4Wm$DJ9cknD" role="3uHU7w">
-              <node concept="13iPFW" id="4Wm$DJ9ckmD" role="2Oq$k0" />
-              <node concept="3TrcHB" id="4Wm$DJ9ckpU" role="2OqNvi">
+          <node concept="3cpWs3" id="4XPt_HavKTq" role="3clFbG">
+            <node concept="2OqwBi" id="4XPt_HavLei" role="3uHU7w">
+              <node concept="13iPFW" id="4XPt_HavKTt" role="2Oq$k0" />
+              <node concept="3TrcHB" id="4XPt_HavLBl" role="2OqNvi">
+                <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+              </node>
+            </node>
+            <node concept="3cpWs3" id="4XPt_HavKP6" role="3uHU7B">
+              <node concept="3cpWs3" id="4Wm$DJ9cklg" role="3uHU7B">
+                <node concept="3cpWs3" id="4Wm$DJ9ckdW" role="3uHU7B">
+                  <node concept="3cpWs3" id="4Wm$DJ9ck0J" role="3uHU7B">
+                    <node concept="3cpWs3" id="4Wm$DJ9cjQ8" role="3uHU7B">
+                      <node concept="2OqwBi" id="4Wm$DJ9cjqa" role="3uHU7B">
+                        <node concept="13iPFW" id="4Wm$DJ9cjiR" role="2Oq$k0" />
+                        <node concept="3TrcHB" id="4Wm$DJ9cjxP" role="2OqNvi">
+                          <ref role="3TsBF5" to="a1af:6gY6GEDvQYT" resolve="result" />
+                        </node>
+                      </node>
+                      <node concept="Xl_RD" id="4Wm$DJ9cjQD" role="3uHU7w">
+                        <property role="Xl_RC" value=" / " />
+                      </node>
+                    </node>
+                    <node concept="2OqwBi" id="4Wm$DJ9ck6o" role="3uHU7w">
+                      <node concept="13iPFW" id="4Wm$DJ9ck1x" role="2Oq$k0" />
+                      <node concept="3TrcHB" id="4Wm$DJ9ck8h" role="2OqNvi">
+                        <ref role="3TsBF5" to="a1af:78RogMCGEW7" resolve="resultNodeModelId" />
+                      </node>
+                    </node>
+                  </node>
+                  <node concept="Xl_RD" id="4Wm$DJ9ckf7" role="3uHU7w">
+                    <property role="Xl_RC" value=":" />
+                  </node>
+                </node>
+                <node concept="2OqwBi" id="4Wm$DJ9cknD" role="3uHU7w">
+                  <node concept="13iPFW" id="4Wm$DJ9ckmD" role="2Oq$k0" />
+                  <node concept="3TrcHB" id="4Wm$DJ9ckpU" role="2OqNvi">
+                    <ref role="3TsBF5" to="a1af:78RogMCGEUf" resolve="resultNodeId" />
+                  </node>
+                </node>
+              </node>
+              <node concept="Xl_RD" id="4XPt_HavKP9" role="3uHU7w">
+                <property role="Xl_RC" value=":" />
+              </node>
+            </node>
+          </node>
+        </node>
+      </node>
+    </node>
+    <node concept="13i0hz" id="2I_DQhGejd" role="13h7CS">
+      <property role="TrG5h" value="getNode" />
+      <node concept="3Tm1VV" id="2I_DQhGeje" role="1B3o_S" />
+      <node concept="3Tqbb2" id="2I_DQhGekN" role="3clF45" />
+      <node concept="3clFbS" id="2I_DQhGejg" role="3clF47">
+        <node concept="3clFbF" id="2I_DQhGell" role="3cqZAp">
+          <node concept="2YIFZM" id="78RogMCHPlD" role="3clFbG">
+            <ref role="37wK5l" node="78RogMCHOPn" resolve="findNodeById" />
+            <ref role="1Pybhc" node="78RogMCHKPV" resolve="Node2ID" />
+            <node concept="37vLTw" id="2I_DQhGezh" role="37wK5m">
+              <ref role="3cqZAo" node="2I_DQhGenF" resolve="repository" />
+            </node>
+            <node concept="2OqwBi" id="78RogMCHQ00" role="37wK5m">
+              <node concept="13iPFW" id="2I_DQhGe$A" role="2Oq$k0" />
+              <node concept="3TrcHB" id="78RogMCHQhE" role="2OqNvi">
+                <ref role="3TsBF5" to="a1af:78RogMCGEW7" resolve="resultNodeModelId" />
+              </node>
+            </node>
+            <node concept="2OqwBi" id="78RogMCHQEb" role="37wK5m">
+              <node concept="13iPFW" id="2I_DQhGeB$" role="2Oq$k0" />
+              <node concept="3TrcHB" id="78RogMCHQP$" role="2OqNvi">
                 <ref role="3TsBF5" to="a1af:78RogMCGEUf" resolve="resultNodeId" />
               </node>
             </node>
-            <node concept="3cpWs3" id="4Wm$DJ9ckdW" role="3uHU7B">
-              <node concept="3cpWs3" id="4Wm$DJ9ck0J" role="3uHU7B">
-                <node concept="3cpWs3" id="4Wm$DJ9cjQ8" role="3uHU7B">
-                  <node concept="2OqwBi" id="4Wm$DJ9cjqa" role="3uHU7B">
-                    <node concept="13iPFW" id="4Wm$DJ9cjiR" role="2Oq$k0" />
-                    <node concept="3TrcHB" id="4Wm$DJ9cjxP" role="2OqNvi">
-                      <ref role="3TsBF5" to="a1af:6gY6GEDvQYT" resolve="result" />
+          </node>
+        </node>
+      </node>
+      <node concept="37vLTG" id="2I_DQhGenF" role="3clF46">
+        <property role="TrG5h" value="repository" />
+        <node concept="3uibUv" id="2I_DQhGenE" role="1tU5fm">
+          <ref role="3uigEE" to="lui2:~SRepository" resolve="SRepository" />
+        </node>
+      </node>
+    </node>
+    <node concept="13i0hz" id="4XPt_HauH1N" role="13h7CS">
+      <property role="TrG5h" value="formatLocation" />
+      <node concept="3Tm1VV" id="4XPt_HauH1O" role="1B3o_S" />
+      <node concept="17QB3L" id="4XPt_HauH4u" role="3clF45" />
+      <node concept="3clFbS" id="4XPt_HauH1Q" role="3clF47">
+        <node concept="3cpWs8" id="4XPt_HauIId" role="3cqZAp">
+          <node concept="3cpWsn" id="4XPt_HauIIe" role="3cpWs9">
+            <property role="TrG5h" value="persistenceFacade" />
+            <node concept="3uibUv" id="4XPt_HauIH$" role="1tU5fm">
+              <ref role="3uigEE" to="dush:~PersistenceFacade" resolve="PersistenceFacade" />
+            </node>
+            <node concept="2YIFZM" id="4XPt_HauIIf" role="33vP2m">
+              <ref role="37wK5l" to="dush:~PersistenceFacade.getInstance()" resolve="getInstance" />
+              <ref role="1Pybhc" to="dush:~PersistenceFacade" resolve="PersistenceFacade" />
+            </node>
+          </node>
+        </node>
+        <node concept="3J1_TO" id="4XPt_HauHn6" role="3cqZAp">
+          <node concept="3uVAMA" id="4XPt_HauHnV" role="1zxBo5">
+            <node concept="XOnhg" id="4XPt_HauHnW" role="1zc67B">
+              <property role="TrG5h" value="e" />
+              <node concept="nSUau" id="4XPt_HauHnX" role="1tU5fm">
+                <node concept="3uibUv" id="4XPt_HauHoC" role="nSUat">
+                  <ref role="3uigEE" to="wyt6:~Exception" resolve="Exception" />
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbS" id="4XPt_HauHnY" role="1zc67A" />
+          </node>
+          <node concept="3clFbS" id="4XPt_HauHn8" role="1zxBo7">
+            <node concept="3cpWs8" id="4XPt_HaxnmX" role="3cqZAp">
+              <node concept="3cpWsn" id="4XPt_HaxnmY" role="3cpWs9">
+                <property role="TrG5h" value="modelRef" />
+                <node concept="3uibUv" id="4XPt_Haxnkx" role="1tU5fm">
+                  <ref role="3uigEE" to="mhbf:~SModelReference" resolve="SModelReference" />
+                </node>
+                <node concept="2OqwBi" id="4XPt_HaxnmZ" role="33vP2m">
+                  <node concept="37vLTw" id="4XPt_Haxnn0" role="2Oq$k0">
+                    <ref role="3cqZAo" node="4XPt_HauIIe" resolve="persistenceFacade" />
+                  </node>
+                  <node concept="liA8E" id="4XPt_Haxnn1" role="2OqNvi">
+                    <ref role="37wK5l" to="dush:~PersistenceFacade.createModelReference(java.lang.String)" resolve="createModelReference" />
+                    <node concept="2OqwBi" id="4XPt_Haxnn2" role="37wK5m">
+                      <node concept="13iPFW" id="4XPt_Haxnn3" role="2Oq$k0" />
+                      <node concept="3TrcHB" id="4XPt_Haxnn4" role="2OqNvi">
+                        <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3cpWs6" id="4XPt_HauHqo" role="3cqZAp">
+              <node concept="3cpWs3" id="4XPt_HaxD5R" role="3cqZAk">
+                <node concept="2OqwBi" id="4XPt_HaxEfO" role="3uHU7w">
+                  <node concept="2OqwBi" id="4XPt_HaxDTQ" role="2Oq$k0">
+                    <node concept="2OqwBi" id="4XPt_HaxDj3" role="2Oq$k0">
+                      <node concept="37vLTw" id="4XPt_HaxD94" role="2Oq$k0">
+                        <ref role="3cqZAo" node="4XPt_HaxnmY" resolve="modelRef" />
+                      </node>
+                      <node concept="liA8E" id="4XPt_HaxD_D" role="2OqNvi">
+                        <ref role="37wK5l" to="mhbf:~SModelReference.resolve(org.jetbrains.mps.openapi.module.SRepository)" resolve="resolve" />
+                        <node concept="37vLTw" id="4XPt_HaxDK5" role="37wK5m">
+                          <ref role="3cqZAo" node="4XPt_HaxCna" resolve="repository" />
+                        </node>
+                      </node>
+                    </node>
+                    <node concept="liA8E" id="4XPt_HaxE78" role="2OqNvi">
+                      <ref role="37wK5l" to="mhbf:~SModel.getModule()" resolve="getModule" />
                     </node>
                   </node>
-                  <node concept="Xl_RD" id="4Wm$DJ9cjQD" role="3uHU7w">
-                    <property role="Xl_RC" value=" / " />
+                  <node concept="liA8E" id="4XPt_HaxEuD" role="2OqNvi">
+                    <ref role="37wK5l" to="lui2:~SModule.getModuleName()" resolve="getModuleName" />
                   </node>
                 </node>
-                <node concept="2OqwBi" id="4Wm$DJ9ck6o" role="3uHU7w">
-                  <node concept="13iPFW" id="4Wm$DJ9ck1x" role="2Oq$k0" />
-                  <node concept="3TrcHB" id="4Wm$DJ9ck8h" role="2OqNvi">
-                    <ref role="3TsBF5" to="a1af:78RogMCGEW7" resolve="resultNodeModelId" />
+                <node concept="3cpWs3" id="4XPt_HaxCcN" role="3uHU7B">
+                  <node concept="3cpWs3" id="4XPt_HayC$o" role="3uHU7B">
+                    <node concept="Xl_RD" id="4XPt_HayC$r" role="3uHU7B">
+                      <property role="Xl_RC" value="model: " />
+                    </node>
+                    <node concept="2OqwBi" id="4XPt_HauJO2" role="3uHU7w">
+                      <node concept="2OqwBi" id="4XPt_HauJwl" role="2Oq$k0">
+                        <node concept="37vLTw" id="4XPt_Haxnn5" role="2Oq$k0">
+                          <ref role="3cqZAo" node="4XPt_HaxnmY" resolve="modelRef" />
+                        </node>
+                        <node concept="liA8E" id="4XPt_HauJE1" role="2OqNvi">
+                          <ref role="37wK5l" to="mhbf:~SModelReference.getName()" resolve="getName" />
+                        </node>
+                      </node>
+                      <node concept="liA8E" id="4XPt_HauJYN" role="2OqNvi">
+                        <ref role="37wK5l" to="mhbf:~SModelName.toString()" resolve="toString" />
+                      </node>
+                    </node>
+                  </node>
+                  <node concept="Xl_RD" id="4XPt_HaxCcQ" role="3uHU7w">
+                    <property role="Xl_RC" value=" module:" />
                   </node>
                 </node>
               </node>
-              <node concept="Xl_RD" id="4Wm$DJ9ckf7" role="3uHU7w">
-                <property role="Xl_RC" value=":" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="4XPt_HauHUV" role="3cqZAp" />
+        <node concept="3J1_TO" id="4XPt_HauHOA" role="3cqZAp">
+          <node concept="3uVAMA" id="4XPt_HauHOB" role="1zxBo5">
+            <node concept="XOnhg" id="4XPt_HauHOC" role="1zc67B">
+              <property role="TrG5h" value="e" />
+              <node concept="nSUau" id="4XPt_HauHOD" role="1tU5fm">
+                <node concept="3uibUv" id="4XPt_HauHOE" role="nSUat">
+                  <ref role="3uigEE" to="wyt6:~Exception" resolve="Exception" />
+                </node>
               </node>
             </node>
+            <node concept="3clFbS" id="4XPt_HauHOF" role="1zc67A" />
           </node>
+          <node concept="3clFbS" id="4XPt_HauHOG" role="1zxBo7">
+            <node concept="3cpWs6" id="4XPt_HauHOH" role="3cqZAp">
+              <node concept="3cpWs3" id="4XPt_HayD7j" role="3cqZAk">
+                <node concept="Xl_RD" id="4XPt_HayDbO" role="3uHU7B">
+                  <property role="Xl_RC" value="module: " />
+                </node>
+                <node concept="2OqwBi" id="4XPt_HauK8Z" role="3uHU7w">
+                  <node concept="2OqwBi" id="4XPt_HauHOI" role="2Oq$k0">
+                    <node concept="37vLTw" id="4XPt_HauIIh" role="2Oq$k0">
+                      <ref role="3cqZAo" node="4XPt_HauIIe" resolve="persistenceFacade" />
+                    </node>
+                    <node concept="liA8E" id="4XPt_HauHOK" role="2OqNvi">
+                      <ref role="37wK5l" to="dush:~PersistenceFacade.createModuleReference(java.lang.String)" resolve="createModuleReference" />
+                      <node concept="2OqwBi" id="4XPt_HauHOL" role="37wK5m">
+                        <node concept="13iPFW" id="4XPt_HauHOM" role="2Oq$k0" />
+                        <node concept="3TrcHB" id="4XPt_HauHON" role="2OqNvi">
+                          <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                  <node concept="liA8E" id="4XPt_HauKj1" role="2OqNvi">
+                    <ref role="37wK5l" to="lui2:~SModuleReference.getModuleName()" resolve="getModuleName" />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="4XPt_HauI1d" role="3cqZAp" />
+        <node concept="3cpWs6" id="4XPt_HauIlq" role="3cqZAp">
+          <node concept="2OqwBi" id="4XPt_HauIyE" role="3cqZAk">
+            <node concept="13iPFW" id="4XPt_HauInp" role="2Oq$k0" />
+            <node concept="3TrcHB" id="4XPt_HauIGq" role="2OqNvi">
+              <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="37vLTG" id="4XPt_HaxCna" role="3clF46">
+        <property role="TrG5h" value="repository" />
+        <node concept="3uibUv" id="4XPt_HaxCn9" role="1tU5fm">
+          <ref role="3uigEE" to="lui2:~SRepository" resolve="SRepository" />
         </node>
       </node>
     </node>
diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
index f5d0bff2..bdae3985 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
@@ -19,6 +19,7 @@
     <import index="lzb2" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.ui(MPS.IDEA/)" />
     <import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
     <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
+    <import index="mhbf" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)" implicit="true" />
     <import index="tpen" ref="r:00000000-0000-4000-0000-011c895902c3(jetbrains.mps.baseLanguage.editor)" implicit="true" />
     <import index="zqge" ref="r:59e90602-6655-4552-86eb-441a42a9a0e4(jetbrains.mps.lang.text.structure)" implicit="true" />
     <import index="tpco" ref="r:00000000-0000-4000-0000-011c89590284(jetbrains.mps.lang.core.editor)" implicit="true" />
@@ -143,6 +144,12 @@
         <child id="1638911550608572412" name="sections" index="IW6Ez" />
       </concept>
       <concept id="1161622981231" name="jetbrains.mps.lang.editor.structure.ConceptFunctionParameter_editorContext" flags="nn" index="1Q80Hx" />
+      <concept id="1088612959204" name="jetbrains.mps.lang.editor.structure.CellModel_Alternation" flags="sg" stub="8104358048506729361" index="1QoScp">
+        <property id="1088613081987" name="vertical" index="1QpmdY" />
+        <child id="1145918517974" name="alternationCondition" index="3e4ffs" />
+        <child id="1088612958265" name="ifTrueCellModel" index="1QoS34" />
+        <child id="1088612973955" name="ifFalseCellModel" index="1QoVPY" />
+      </concept>
       <concept id="7980428675268276156" name="jetbrains.mps.lang.editor.structure.TransformationMenuSection" flags="ng" index="1Qtc8_">
         <child id="7980428675268276157" name="locations" index="1Qtc8$" />
         <child id="7980428675268276159" name="parts" index="1Qtc8A" />
@@ -210,6 +217,7 @@
       <concept id="1068498886292" name="jetbrains.mps.baseLanguage.structure.ParameterDeclaration" flags="ir" index="37vLTG" />
       <concept id="1068498886294" name="jetbrains.mps.baseLanguage.structure.AssignmentExpression" flags="nn" index="37vLTI" />
       <concept id="1225271177708" name="jetbrains.mps.baseLanguage.structure.StringType" flags="in" index="17QB3L" />
+      <concept id="1225271408483" name="jetbrains.mps.baseLanguage.structure.IsNotEmptyOperation" flags="nn" index="17RvpY" />
       <concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
         <child id="5680397130376446158" name="type" index="1tU5fm" />
       </concept>
@@ -309,6 +317,7 @@
       <concept id="1143224127713" name="jetbrains.mps.lang.smodel.structure.Node_InsertPrevSiblingOperation" flags="nn" index="HtX7F">
         <child id="1143224127716" name="insertedNode" index="HtX7I" />
       </concept>
+      <concept id="1143234257716" name="jetbrains.mps.lang.smodel.structure.Node_GetModelOperation" flags="nn" index="I4A8Y" />
       <concept id="1883223317721008708" name="jetbrains.mps.lang.smodel.structure.IfInstanceOfStatement" flags="nn" index="Jncv_">
         <reference id="1883223317721008712" name="nodeConcept" index="JncvD" />
         <child id="1883223317721008709" name="body" index="Jncv$" />
@@ -317,6 +326,10 @@
       </concept>
       <concept id="1883223317721008713" name="jetbrains.mps.lang.smodel.structure.IfInstanceOfVariable" flags="ng" index="JncvC" />
       <concept id="1883223317721107059" name="jetbrains.mps.lang.smodel.structure.IfInstanceOfVarReference" flags="nn" index="Jnkvi" />
+      <concept id="1145404486709" name="jetbrains.mps.lang.smodel.structure.SemanticDowncastExpression" flags="nn" index="2JrnkZ">
+        <child id="1145404616321" name="leftExpression" index="2JrQYb" />
+      </concept>
+      <concept id="1212008292747" name="jetbrains.mps.lang.smodel.structure.Model_GetLongNameOperation" flags="nn" index="LkI2h" />
       <concept id="1172008320231" name="jetbrains.mps.lang.smodel.structure.Node_IsNotNullOperation" flags="nn" index="3x8VRR" />
       <concept id="1180636770613" name="jetbrains.mps.lang.smodel.structure.SNodeCreator" flags="nn" index="3zrR0B">
         <child id="1180636770616" name="createdType" index="3zrR0E" />
@@ -1055,53 +1068,112 @@
   <node concept="24kQdi" id="4WO8F5MT71H">
     <property role="3GE5qa" value="previous_results" />
     <ref role="1XX52x" to="a1af:6gY6GEDvQYS" resolve="ResultEntry" />
-    <node concept="3EZMnI" id="4WO8F5MTflp" role="2wV5jI">
-      <node concept="3F0ifn" id="4WO8F5MTfl_" role="3EZMnx">
-        <property role="3F0ifm" value="Error:" />
-      </node>
-      <node concept="2iRfu4" id="4WO8F5MTflq" role="2iSdaV" />
-      <node concept="3F0A7n" id="4WO8F5MT71M" role="3EZMnx">
-        <ref role="1NtTu8" to="a1af:6gY6GEDvQYT" resolve="result" />
-        <node concept="VPxyj" id="4WO8F5MT71P" role="3F10Kt" />
-        <node concept="3k4GqR" id="78RogMCGF1B" role="3F10Kt">
-          <node concept="3k4GqP" id="78RogMCGF1D" role="3k4GqO">
-            <node concept="3clFbS" id="78RogMCGF1F" role="2VODD2">
-              <node concept="3cpWs8" id="78RogMCGFYT" role="3cqZAp">
-                <node concept="3cpWsn" id="78RogMCGFYU" role="3cpWs9">
-                  <property role="TrG5h" value="project" />
-                  <node concept="3uibUv" id="78RogMCGFYB" role="1tU5fm">
-                    <ref role="3uigEE" to="z1c3:~Project" resolve="Project" />
-                  </node>
-                  <node concept="2OqwBi" id="78RogMCGFYV" role="33vP2m">
-                    <node concept="2OqwBi" id="78RogMCGFYW" role="2Oq$k0">
-                      <node concept="1Q80Hx" id="78RogMCGFYX" role="2Oq$k0" />
-                      <node concept="liA8E" id="78RogMCGFYY" role="2OqNvi">
-                        <ref role="37wK5l" to="cj4x:~EditorContext.getOperationContext()" resolve="getOperationContext" />
+    <node concept="3EZMnI" id="2I_DQhHcYH" role="2wV5jI">
+      <node concept="1QoScp" id="4XPt_Hatexq" role="3EZMnx">
+        <property role="1QpmdY" value="true" />
+        <node concept="pkWqt" id="4XPt_Hatext" role="3e4ffs">
+          <node concept="3clFbS" id="4XPt_Hatexv" role="2VODD2">
+            <node concept="3clFbF" id="4XPt_Hatf3y" role="3cqZAp">
+              <node concept="2OqwBi" id="2I_DQhGtI9" role="3clFbG">
+                <node concept="2OqwBi" id="2I_DQhGtfn" role="2Oq$k0">
+                  <node concept="pncrf" id="2I_DQhGtfo" role="2Oq$k0" />
+                  <node concept="2qgKlT" id="2I_DQhGtfp" role="2OqNvi">
+                    <ref role="37wK5l" to="b659:2I_DQhGejd" resolve="getNode" />
+                    <node concept="2OqwBi" id="2I_DQhGtfq" role="37wK5m">
+                      <node concept="1Q80Hx" id="2I_DQhGtfr" role="2Oq$k0" />
+                      <node concept="liA8E" id="2I_DQhGtfs" role="2OqNvi">
+                        <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
                       </node>
                     </node>
-                    <node concept="liA8E" id="78RogMCGFYZ" role="2OqNvi">
-                      <ref role="37wK5l" to="w1kc:~IOperationContext.getProject()" resolve="getProject" />
-                    </node>
                   </node>
                 </node>
+                <node concept="3x8VRR" id="2I_DQhGu96" role="2OqNvi" />
               </node>
-              <node concept="3clFbF" id="78RogMCHOwr" role="3cqZAp">
-                <node concept="2YIFZM" id="78RogMCHPlD" role="3clFbG">
-                  <ref role="37wK5l" to="b659:78RogMCHOPn" resolve="findNodeById" />
-                  <ref role="1Pybhc" to="b659:78RogMCHKPV" resolve="Node2ID" />
-                  <node concept="37vLTw" id="78RogMCHPtO" role="37wK5m">
-                    <ref role="3cqZAo" node="78RogMCGFYU" resolve="project" />
+            </node>
+          </node>
+        </node>
+        <node concept="3F0ifn" id="4XPt_Hatf70" role="1QoVPY">
+          <property role="3F0ifm" value="unknown location" />
+        </node>
+        <node concept="3EZMnI" id="4WO8F5MTflp" role="1QoS34">
+          <node concept="2iRfu4" id="4WO8F5MTflq" role="2iSdaV" />
+          <node concept="3F0ifn" id="2I_DQhHf0o" role="3EZMnx">
+            <property role="3F0ifm" value="model" />
+          </node>
+          <node concept="1HlG4h" id="2I_DQhHf7x" role="3EZMnx">
+            <node concept="1HfYo3" id="2I_DQhHf7y" role="1HlULh">
+              <node concept="3TQlhw" id="2I_DQhHf7z" role="1Hhtcw">
+                <node concept="3clFbS" id="2I_DQhHf7$" role="2VODD2">
+                  <node concept="3clFbF" id="2I_DQhHf7_" role="3cqZAp">
+                    <node concept="2OqwBi" id="2I_DQhHf7A" role="3clFbG">
+                      <node concept="2OqwBi" id="2I_DQhHf7B" role="2Oq$k0">
+                        <node concept="2OqwBi" id="2I_DQhHf7C" role="2Oq$k0">
+                          <node concept="pncrf" id="2I_DQhHf7D" role="2Oq$k0" />
+                          <node concept="2qgKlT" id="2I_DQhHf7E" role="2OqNvi">
+                            <ref role="37wK5l" to="b659:2I_DQhGejd" resolve="getNode" />
+                            <node concept="2OqwBi" id="2I_DQhHf7F" role="37wK5m">
+                              <node concept="1Q80Hx" id="2I_DQhHf7G" role="2Oq$k0" />
+                              <node concept="liA8E" id="2I_DQhHf7H" role="2OqNvi">
+                                <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+                              </node>
+                            </node>
+                          </node>
+                        </node>
+                        <node concept="I4A8Y" id="2I_DQhHf7I" role="2OqNvi" />
+                      </node>
+                      <node concept="LkI2h" id="2I_DQhHf7J" role="2OqNvi" />
+                    </node>
                   </node>
-                  <node concept="2OqwBi" id="78RogMCHQ00" role="37wK5m">
-                    <node concept="pncrf" id="78RogMCHPIw" role="2Oq$k0" />
-                    <node concept="3TrcHB" id="78RogMCHQhE" role="2OqNvi">
-                      <ref role="3TsBF5" to="a1af:78RogMCGEW7" resolve="resultNodeModelId" />
+                </node>
+              </node>
+            </node>
+          </node>
+          <node concept="3F0ifn" id="4XPt_Hap_xJ" role="3EZMnx">
+            <property role="3F0ifm" value="with node" />
+          </node>
+          <node concept="1HlG4h" id="4XPt_Hap_$p" role="3EZMnx">
+            <node concept="3k4GqR" id="4XPt_HaqMFn" role="3F10Kt">
+              <node concept="3k4GqP" id="4XPt_HaqMFo" role="3k4GqO">
+                <node concept="3clFbS" id="4XPt_HaqMFp" role="2VODD2">
+                  <node concept="3clFbF" id="4XPt_HaqML8" role="3cqZAp">
+                    <node concept="2OqwBi" id="4XPt_HaqMWS" role="3clFbG">
+                      <node concept="pncrf" id="4XPt_HaqML7" role="2Oq$k0" />
+                      <node concept="2qgKlT" id="4XPt_HaqN7X" role="2OqNvi">
+                        <ref role="37wK5l" to="b659:2I_DQhGejd" resolve="getNode" />
+                        <node concept="2OqwBi" id="4XPt_HaqNHU" role="37wK5m">
+                          <node concept="1Q80Hx" id="4XPt_HaqN$r" role="2Oq$k0" />
+                          <node concept="liA8E" id="4XPt_HaqO3k" role="2OqNvi">
+                            <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+                          </node>
+                        </node>
+                      </node>
                     </node>
                   </node>
-                  <node concept="2OqwBi" id="78RogMCHQEb" role="37wK5m">
-                    <node concept="pncrf" id="78RogMCHQyB" role="2Oq$k0" />
-                    <node concept="3TrcHB" id="78RogMCHQP$" role="2OqNvi">
-                      <ref role="3TsBF5" to="a1af:78RogMCGEUf" resolve="resultNodeId" />
+                </node>
+              </node>
+            </node>
+            <node concept="1HfYo3" id="4XPt_Hap_$q" role="1HlULh">
+              <node concept="3TQlhw" id="4XPt_Hap_$r" role="1Hhtcw">
+                <node concept="3clFbS" id="4XPt_Hap_$s" role="2VODD2">
+                  <node concept="3clFbF" id="4XPt_Hap_$t" role="3cqZAp">
+                    <node concept="2OqwBi" id="4XPt_Hap_$u" role="3clFbG">
+                      <node concept="2JrnkZ" id="4XPt_Hap_$v" role="2Oq$k0">
+                        <node concept="2OqwBi" id="4XPt_Hap_$w" role="2JrQYb">
+                          <node concept="pncrf" id="4XPt_Hap_$x" role="2Oq$k0" />
+                          <node concept="2qgKlT" id="4XPt_Hap_$y" role="2OqNvi">
+                            <ref role="37wK5l" to="b659:2I_DQhGejd" resolve="getNode" />
+                            <node concept="2OqwBi" id="4XPt_Hap_$z" role="37wK5m">
+                              <node concept="1Q80Hx" id="4XPt_Hap_$$" role="2Oq$k0" />
+                              <node concept="liA8E" id="4XPt_Hap_$_" role="2OqNvi">
+                                <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+                              </node>
+                            </node>
+                          </node>
+                        </node>
+                      </node>
+                      <node concept="liA8E" id="4XPt_Hap_$A" role="2OqNvi">
+                        <ref role="37wK5l" to="mhbf:~SNode.getName()" resolve="getName" />
+                      </node>
                     </node>
                   </node>
                 </node>
@@ -1110,17 +1182,76 @@
           </node>
         </node>
       </node>
-      <node concept="3F0ifn" id="78RogMCKwN$" role="3EZMnx">
-        <property role="3F0ifm" value="from model with ID:" />
-      </node>
-      <node concept="3F0A7n" id="78RogMCKwRi" role="3EZMnx">
-        <ref role="1NtTu8" to="a1af:78RogMCGEW7" resolve="resultNodeModelId" />
-      </node>
-      <node concept="3F0ifn" id="78RogMCKwV2" role="3EZMnx">
-        <property role="3F0ifm" value="and node ID:" />
+      <node concept="3EZMnI" id="4XPt_HaubZN" role="3EZMnx">
+        <node concept="2iRfu4" id="4XPt_HaubZO" role="2iSdaV" />
+        <node concept="3F0ifn" id="4XPt_HaubSP" role="3EZMnx">
+          <property role="3F0ifm" value="location" />
+        </node>
+        <node concept="1HlG4h" id="4XPt_HauX2X" role="3EZMnx">
+          <node concept="1HfYo3" id="4XPt_HauX2Z" role="1HlULh">
+            <node concept="3TQlhw" id="4XPt_HauX31" role="1Hhtcw">
+              <node concept="3clFbS" id="4XPt_HauX33" role="2VODD2">
+                <node concept="3clFbF" id="4XPt_HauX52" role="3cqZAp">
+                  <node concept="2OqwBi" id="4XPt_HauXm_" role="3clFbG">
+                    <node concept="pncrf" id="4XPt_HauX51" role="2Oq$k0" />
+                    <node concept="2qgKlT" id="4XPt_HauXxE" role="2OqNvi">
+                      <ref role="37wK5l" to="b659:4XPt_HauH1N" resolve="formatLocation" />
+                      <node concept="2OqwBi" id="4XPt_HaxFjR" role="37wK5m">
+                        <node concept="1Q80Hx" id="4XPt_HaxF24" role="2Oq$k0" />
+                        <node concept="liA8E" id="4XPt_HaxFzZ" role="2OqNvi">
+                          <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="pkWqt" id="4XPt_Hauc6P" role="pqm2j">
+          <node concept="3clFbS" id="4XPt_Hauc6Q" role="2VODD2">
+            <node concept="3clFbF" id="4XPt_Hauc7A" role="3cqZAp">
+              <node concept="2OqwBi" id="4XPt_Haudyo" role="3clFbG">
+                <node concept="2OqwBi" id="4XPt_HaucnJ" role="2Oq$k0">
+                  <node concept="pncrf" id="4XPt_Hauc7_" role="2Oq$k0" />
+                  <node concept="3TrcHB" id="4XPt_HaucIA" role="2OqNvi">
+                    <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                  </node>
+                </node>
+                <node concept="17RvpY" id="4XPt_Haueny" role="2OqNvi" />
+              </node>
+            </node>
+          </node>
+        </node>
       </node>
-      <node concept="3F0A7n" id="78RogMCKx0I" role="3EZMnx">
-        <ref role="1NtTu8" to="a1af:78RogMCGEUf" resolve="resultNodeId" />
+      <node concept="2iRkQZ" id="2I_DQhHcYI" role="2iSdaV" />
+      <node concept="3EZMnI" id="2I_DQhHdR$" role="3EZMnx">
+        <node concept="2iRfu4" id="2I_DQhHdR_" role="2iSdaV" />
+        <node concept="3XFhqQ" id="4XPt_Hap3VX" role="3EZMnx" />
+        <node concept="3F0A7n" id="2I_DQhHdXo" role="3EZMnx">
+          <ref role="1NtTu8" to="a1af:6gY6GEDvQYT" resolve="result" />
+          <node concept="3k4GqR" id="4XPt_Har$PG" role="3F10Kt">
+            <node concept="3k4GqP" id="4XPt_Har$PH" role="3k4GqO">
+              <node concept="3clFbS" id="4XPt_Har$PI" role="2VODD2">
+                <node concept="3clFbF" id="4XPt_Har$PJ" role="3cqZAp">
+                  <node concept="2OqwBi" id="4XPt_Har$PK" role="3clFbG">
+                    <node concept="pncrf" id="4XPt_Har$PL" role="2Oq$k0" />
+                    <node concept="2qgKlT" id="4XPt_Har$PM" role="2OqNvi">
+                      <ref role="37wK5l" to="b659:2I_DQhGejd" resolve="getNode" />
+                      <node concept="2OqwBi" id="4XPt_Har$PN" role="37wK5m">
+                        <node concept="1Q80Hx" id="4XPt_Har$PO" role="2Oq$k0" />
+                        <node concept="liA8E" id="4XPt_Har$PP" role="2OqNvi">
+                          <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
       </node>
     </node>
   </node>
diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.structure.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.structure.mps
index c683a6a5..6ab46108 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.structure.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.structure.mps
@@ -220,6 +220,11 @@
       <property role="TrG5h" value="resultNodeId" />
       <ref role="AX2Wp" to="tpck:fKAOsGN" resolve="string" />
     </node>
+    <node concept="1TJgyi" id="2I_DQhwrOw" role="1TKVEl">
+      <property role="IQ2nx" value="49142249442884896" />
+      <property role="TrG5h" value="resultLocation" />
+      <ref role="AX2Wp" to="tpck:fKAOsGN" resolve="string" />
+    </node>
   </node>
   <node concept="PlHQZ" id="6gY6GEDvQYV">
     <property role="EcuMT" value="7223240310078271419" />
diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
index 6c478a47..ee89926c 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
@@ -3864,12 +3864,24 @@
                                           </node>
                                           <node concept="2r$n1x" id="4KreBtcxwNF" role="2r_Bvh">
                                             <ref role="2r$qp6" to="qqy:3ghOW5H_ihW" resolve="location" />
-                                            <node concept="2OqwBi" id="4KreBtcybHx" role="2r_lH1">
-                                              <node concept="37vLTw" id="4KreBtcy9PZ" role="2Oq$k0">
-                                                <ref role="3cqZAo" node="4KreBtcxwNN" resolve="it" />
+                                            <node concept="2OqwBi" id="4XPt_HawF1P" role="2r_lH1">
+                                              <node concept="2OqwBi" id="4XPt_HavuJY" role="2Oq$k0">
+                                                <node concept="2JrnkZ" id="4XPt_HavsPR" role="2Oq$k0">
+                                                  <node concept="2OqwBi" id="4KreBtcybHx" role="2JrQYb">
+                                                    <node concept="37vLTw" id="4KreBtcy9PZ" role="2Oq$k0">
+                                                      <ref role="3cqZAo" node="4KreBtcxwNN" resolve="it" />
+                                                    </node>
+                                                    <node concept="2OwXpG" id="4KreBtcydFd" role="2OqNvi">
+                                                      <ref role="2Oxat5" to="zn9m:~Pair.second" resolve="second" />
+                                                    </node>
+                                                  </node>
+                                                </node>
+                                                <node concept="liA8E" id="4XPt_HawCWO" role="2OqNvi">
+                                                  <ref role="37wK5l" to="mhbf:~SModel.getReference()" resolve="getReference" />
+                                                </node>
                                               </node>
-                                              <node concept="2OwXpG" id="4KreBtcydFd" role="2OqNvi">
-                                                <ref role="2Oxat5" to="zn9m:~Pair.second" resolve="second" />
+                                              <node concept="liA8E" id="4XPt_HawHe5" role="2OqNvi">
+                                                <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
                                               </node>
                                             </node>
                                           </node>
@@ -3955,12 +3967,22 @@
                                           </node>
                                           <node concept="2r$n1x" id="4KreBtcyo_R" role="2r_Bvh">
                                             <ref role="2r$qp6" to="qqy:3ghOW5H_ihW" resolve="location" />
-                                            <node concept="2OqwBi" id="4KreBtcyo_T" role="2r_lH1">
-                                              <node concept="37vLTw" id="4KreBtcyo_U" role="2Oq$k0">
-                                                <ref role="3cqZAo" node="4KreBtcyoA3" resolve="it" />
+                                            <node concept="2OqwBi" id="4XPt_HawMmY" role="2r_lH1">
+                                              <node concept="2OqwBi" id="4XPt_HawJrJ" role="2Oq$k0">
+                                                <node concept="2OqwBi" id="4KreBtcyo_T" role="2Oq$k0">
+                                                  <node concept="37vLTw" id="4KreBtcyo_U" role="2Oq$k0">
+                                                    <ref role="3cqZAo" node="4KreBtcyoA3" resolve="it" />
+                                                  </node>
+                                                  <node concept="2OwXpG" id="4KreBtcyo_V" role="2OqNvi">
+                                                    <ref role="2Oxat5" to="zn9m:~Pair.second" resolve="second" />
+                                                  </node>
+                                                </node>
+                                                <node concept="liA8E" id="4XPt_HawLm2" role="2OqNvi">
+                                                  <ref role="37wK5l" to="lui2:~SModule.getModuleReference()" resolve="getModuleReference" />
+                                                </node>
                                               </node>
-                                              <node concept="2OwXpG" id="4KreBtcyo_V" role="2OqNvi">
-                                                <ref role="2Oxat5" to="zn9m:~Pair.second" resolve="second" />
+                                              <node concept="liA8E" id="4XPt_HawOxY" role="2OqNvi">
+                                                <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
                                               </node>
                                             </node>
                                           </node>

From 13abac1ccbd322ee250cba53b4d50d32d269818f Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Mon, 23 Sep 2024 09:17:37 +0200
Subject: [PATCH 11/42] mpsqa.lint: add support for returning files as results

---
 .../org.mpsqa.lint.generic.behavior.mps       | 170 ++++++++++-----
 .../models/org.mpsqa.lint.generic.editor.mps  | 203 +++++++++++++++++-
 ...int.generic.linters_library.filesystem.mps | 126 +++++++----
 3 files changed, 388 insertions(+), 111 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
index fe9f90cd..204a722c 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
@@ -27,6 +27,7 @@
     <import index="w1kc" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.smodel(MPS.Core/)" />
     <import index="alof" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.project(MPS.Platform/)" />
     <import index="dush" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.persistence(MPS.OpenAPI/)" />
+    <import index="guwi" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.io(JDK/)" />
     <import index="vdrq" ref="r:85354f47-14fd-40e6-a7cc-2d1aa842c4cd(jetbrains.mps.lang.text.behavior)" implicit="true" />
     <import index="tpcu" ref="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" implicit="true" />
   </imports>
@@ -35,6 +36,12 @@
       <concept id="1239576519914" name="jetbrains.mps.baseLanguage.tuples.structure.NamedTupleComponentAccessOperation" flags="nn" index="2sxana">
         <reference id="1239576542472" name="component" index="2sxfKC" />
       </concept>
+      <concept id="1238852151516" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleType" flags="in" index="1LlUBW">
+        <child id="1238852204892" name="componentType" index="1Lm7xW" />
+      </concept>
+      <concept id="1238853782547" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleLiteral" flags="nn" index="1Ls8ON">
+        <child id="1238853845806" name="component" index="1Lso8e" />
+      </concept>
     </language>
     <language id="af65afd8-f0dd-4942-87d9-63a55f2a9db1" name="jetbrains.mps.lang.behavior">
       <concept id="1225194240794" name="jetbrains.mps.lang.behavior.structure.ConceptBehavior" flags="ng" index="13h7C7">
@@ -465,6 +472,39 @@
                       </node>
                     </node>
                   </node>
+                  <node concept="2pJPED" id="4XPt_HaAdId" role="36be1Z">
+                    <ref role="2pJxaS" to="tp2q:gK_YKtE" resolve="ListType" />
+                    <node concept="2pIpSj" id="4XPt_HaAdIe" role="2pJxcM">
+                      <ref role="2pIpSl" to="tp2q:gK_ZDn5" resolve="elementType" />
+                      <node concept="2pJPED" id="4XPt_HaAdIf" role="28nt2d">
+                        <ref role="2pJxaS" to="tpee:g7uibYu" resolve="ClassifierType" />
+                        <node concept="2pIpSj" id="4XPt_HaAdIg" role="2pJxcM">
+                          <ref role="2pIpSl" to="tpee:g7uigIF" resolve="classifier" />
+                          <node concept="36bGnv" id="4XPt_HaAdIh" role="28nt2d">
+                            <ref role="36bGnp" to="zn9m:~Pair" resolve="Pair" />
+                          </node>
+                        </node>
+                        <node concept="2pIpSj" id="4XPt_HaAdIi" role="2pJxcM">
+                          <ref role="2pIpSl" to="tpee:g91_B6F" resolve="parameter" />
+                          <node concept="2pJPED" id="4XPt_HaAdIj" role="28nt2d">
+                            <ref role="2pJxaS" to="tpee:hP7QB7G" resolve="StringType" />
+                          </node>
+                        </node>
+                        <node concept="2pIpSj" id="4XPt_HaAdIk" role="2pJxcM">
+                          <ref role="2pIpSl" to="tpee:g91_B6F" resolve="parameter" />
+                          <node concept="2pJPED" id="4XPt_HaAdIl" role="28nt2d">
+                            <ref role="2pJxaS" to="tpee:g7uibYu" resolve="ClassifierType" />
+                            <node concept="2pIpSj" id="4XPt_HaAdIm" role="2pJxcM">
+                              <ref role="2pIpSl" to="tpee:g7uigIF" resolve="classifier" />
+                              <node concept="36bGnv" id="4XPt_HaAqAE" role="28nt2d">
+                                <ref role="36bGnp" to="guwi:~File" resolve="File" />
+                              </node>
+                            </node>
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                  </node>
                 </node>
               </node>
             </node>
@@ -1870,7 +1910,6 @@
     <node concept="13i0hz" id="4XPt_HauH1N" role="13h7CS">
       <property role="TrG5h" value="formatLocation" />
       <node concept="3Tm1VV" id="4XPt_HauH1O" role="1B3o_S" />
-      <node concept="17QB3L" id="4XPt_HauH4u" role="3clF45" />
       <node concept="3clFbS" id="4XPt_HauH1Q" role="3clF47">
         <node concept="3cpWs8" id="4XPt_HauIId" role="3cqZAp">
           <node concept="3cpWsn" id="4XPt_HauIIe" role="3cpWs9">
@@ -1920,50 +1959,55 @@
               </node>
             </node>
             <node concept="3cpWs6" id="4XPt_HauHqo" role="3cqZAp">
-              <node concept="3cpWs3" id="4XPt_HaxD5R" role="3cqZAk">
-                <node concept="2OqwBi" id="4XPt_HaxEfO" role="3uHU7w">
-                  <node concept="2OqwBi" id="4XPt_HaxDTQ" role="2Oq$k0">
-                    <node concept="2OqwBi" id="4XPt_HaxDj3" role="2Oq$k0">
-                      <node concept="37vLTw" id="4XPt_HaxD94" role="2Oq$k0">
-                        <ref role="3cqZAo" node="4XPt_HaxnmY" resolve="modelRef" />
-                      </node>
-                      <node concept="liA8E" id="4XPt_HaxD_D" role="2OqNvi">
-                        <ref role="37wK5l" to="mhbf:~SModelReference.resolve(org.jetbrains.mps.openapi.module.SRepository)" resolve="resolve" />
-                        <node concept="37vLTw" id="4XPt_HaxDK5" role="37wK5m">
-                          <ref role="3cqZAo" node="4XPt_HaxCna" resolve="repository" />
+              <node concept="1Ls8ON" id="4XPt_HaCtaF" role="3cqZAk">
+                <node concept="3cpWs3" id="4XPt_HaxD5R" role="1Lso8e">
+                  <node concept="2OqwBi" id="4XPt_HaxEfO" role="3uHU7w">
+                    <node concept="2OqwBi" id="4XPt_HaxDTQ" role="2Oq$k0">
+                      <node concept="2OqwBi" id="4XPt_HaxDj3" role="2Oq$k0">
+                        <node concept="37vLTw" id="4XPt_HaxD94" role="2Oq$k0">
+                          <ref role="3cqZAo" node="4XPt_HaxnmY" resolve="modelRef" />
                         </node>
+                        <node concept="liA8E" id="4XPt_HaxD_D" role="2OqNvi">
+                          <ref role="37wK5l" to="mhbf:~SModelReference.resolve(org.jetbrains.mps.openapi.module.SRepository)" resolve="resolve" />
+                          <node concept="37vLTw" id="4XPt_HaxDK5" role="37wK5m">
+                            <ref role="3cqZAo" node="4XPt_HaxCna" resolve="repository" />
+                          </node>
+                        </node>
+                      </node>
+                      <node concept="liA8E" id="4XPt_HaxE78" role="2OqNvi">
+                        <ref role="37wK5l" to="mhbf:~SModel.getModule()" resolve="getModule" />
                       </node>
                     </node>
-                    <node concept="liA8E" id="4XPt_HaxE78" role="2OqNvi">
-                      <ref role="37wK5l" to="mhbf:~SModel.getModule()" resolve="getModule" />
+                    <node concept="liA8E" id="4XPt_HaxEuD" role="2OqNvi">
+                      <ref role="37wK5l" to="lui2:~SModule.getModuleName()" resolve="getModuleName" />
                     </node>
                   </node>
-                  <node concept="liA8E" id="4XPt_HaxEuD" role="2OqNvi">
-                    <ref role="37wK5l" to="lui2:~SModule.getModuleName()" resolve="getModuleName" />
-                  </node>
-                </node>
-                <node concept="3cpWs3" id="4XPt_HaxCcN" role="3uHU7B">
-                  <node concept="3cpWs3" id="4XPt_HayC$o" role="3uHU7B">
-                    <node concept="Xl_RD" id="4XPt_HayC$r" role="3uHU7B">
-                      <property role="Xl_RC" value="model: " />
-                    </node>
-                    <node concept="2OqwBi" id="4XPt_HauJO2" role="3uHU7w">
-                      <node concept="2OqwBi" id="4XPt_HauJwl" role="2Oq$k0">
-                        <node concept="37vLTw" id="4XPt_Haxnn5" role="2Oq$k0">
-                          <ref role="3cqZAo" node="4XPt_HaxnmY" resolve="modelRef" />
+                  <node concept="3cpWs3" id="4XPt_HaxCcN" role="3uHU7B">
+                    <node concept="3cpWs3" id="4XPt_HayC$o" role="3uHU7B">
+                      <node concept="Xl_RD" id="4XPt_HayC$r" role="3uHU7B">
+                        <property role="Xl_RC" value="model: " />
+                      </node>
+                      <node concept="2OqwBi" id="4XPt_HauJO2" role="3uHU7w">
+                        <node concept="2OqwBi" id="4XPt_HauJwl" role="2Oq$k0">
+                          <node concept="37vLTw" id="4XPt_Haxnn5" role="2Oq$k0">
+                            <ref role="3cqZAo" node="4XPt_HaxnmY" resolve="modelRef" />
+                          </node>
+                          <node concept="liA8E" id="4XPt_HauJE1" role="2OqNvi">
+                            <ref role="37wK5l" to="mhbf:~SModelReference.getName()" resolve="getName" />
+                          </node>
                         </node>
-                        <node concept="liA8E" id="4XPt_HauJE1" role="2OqNvi">
-                          <ref role="37wK5l" to="mhbf:~SModelReference.getName()" resolve="getName" />
+                        <node concept="liA8E" id="4XPt_HauJYN" role="2OqNvi">
+                          <ref role="37wK5l" to="mhbf:~SModelName.toString()" resolve="toString" />
                         </node>
                       </node>
-                      <node concept="liA8E" id="4XPt_HauJYN" role="2OqNvi">
-                        <ref role="37wK5l" to="mhbf:~SModelName.toString()" resolve="toString" />
-                      </node>
+                    </node>
+                    <node concept="Xl_RD" id="4XPt_HaxCcQ" role="3uHU7w">
+                      <property role="Xl_RC" value=" module:" />
                     </node>
                   </node>
-                  <node concept="Xl_RD" id="4XPt_HaxCcQ" role="3uHU7w">
-                    <property role="Xl_RC" value=" module:" />
-                  </node>
+                </node>
+                <node concept="3clFbT" id="4XPt_HaCtEG" role="1Lso8e">
+                  <property role="3clFbU" value="true" />
                 </node>
               </node>
             </node>
@@ -1984,28 +2028,33 @@
           </node>
           <node concept="3clFbS" id="4XPt_HauHOG" role="1zxBo7">
             <node concept="3cpWs6" id="4XPt_HauHOH" role="3cqZAp">
-              <node concept="3cpWs3" id="4XPt_HayD7j" role="3cqZAk">
-                <node concept="Xl_RD" id="4XPt_HayDbO" role="3uHU7B">
-                  <property role="Xl_RC" value="module: " />
-                </node>
-                <node concept="2OqwBi" id="4XPt_HauK8Z" role="3uHU7w">
-                  <node concept="2OqwBi" id="4XPt_HauHOI" role="2Oq$k0">
-                    <node concept="37vLTw" id="4XPt_HauIIh" role="2Oq$k0">
-                      <ref role="3cqZAo" node="4XPt_HauIIe" resolve="persistenceFacade" />
-                    </node>
-                    <node concept="liA8E" id="4XPt_HauHOK" role="2OqNvi">
-                      <ref role="37wK5l" to="dush:~PersistenceFacade.createModuleReference(java.lang.String)" resolve="createModuleReference" />
-                      <node concept="2OqwBi" id="4XPt_HauHOL" role="37wK5m">
-                        <node concept="13iPFW" id="4XPt_HauHOM" role="2Oq$k0" />
-                        <node concept="3TrcHB" id="4XPt_HauHON" role="2OqNvi">
-                          <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+              <node concept="1Ls8ON" id="4XPt_HaCtVC" role="3cqZAk">
+                <node concept="3cpWs3" id="4XPt_HayD7j" role="1Lso8e">
+                  <node concept="Xl_RD" id="4XPt_HayDbO" role="3uHU7B">
+                    <property role="Xl_RC" value="module: " />
+                  </node>
+                  <node concept="2OqwBi" id="4XPt_HauK8Z" role="3uHU7w">
+                    <node concept="2OqwBi" id="4XPt_HauHOI" role="2Oq$k0">
+                      <node concept="37vLTw" id="4XPt_HauIIh" role="2Oq$k0">
+                        <ref role="3cqZAo" node="4XPt_HauIIe" resolve="persistenceFacade" />
+                      </node>
+                      <node concept="liA8E" id="4XPt_HauHOK" role="2OqNvi">
+                        <ref role="37wK5l" to="dush:~PersistenceFacade.createModuleReference(java.lang.String)" resolve="createModuleReference" />
+                        <node concept="2OqwBi" id="4XPt_HauHOL" role="37wK5m">
+                          <node concept="13iPFW" id="4XPt_HauHOM" role="2Oq$k0" />
+                          <node concept="3TrcHB" id="4XPt_HauHON" role="2OqNvi">
+                            <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                          </node>
                         </node>
                       </node>
                     </node>
+                    <node concept="liA8E" id="4XPt_HauKj1" role="2OqNvi">
+                      <ref role="37wK5l" to="lui2:~SModuleReference.getModuleName()" resolve="getModuleName" />
+                    </node>
                   </node>
-                  <node concept="liA8E" id="4XPt_HauKj1" role="2OqNvi">
-                    <ref role="37wK5l" to="lui2:~SModuleReference.getModuleName()" resolve="getModuleName" />
-                  </node>
+                </node>
+                <node concept="3clFbT" id="4XPt_HaCuZf" role="1Lso8e">
+                  <property role="3clFbU" value="true" />
                 </node>
               </node>
             </node>
@@ -2013,11 +2062,14 @@
         </node>
         <node concept="3clFbH" id="4XPt_HauI1d" role="3cqZAp" />
         <node concept="3cpWs6" id="4XPt_HauIlq" role="3cqZAp">
-          <node concept="2OqwBi" id="4XPt_HauIyE" role="3cqZAk">
-            <node concept="13iPFW" id="4XPt_HauInp" role="2Oq$k0" />
-            <node concept="3TrcHB" id="4XPt_HauIGq" role="2OqNvi">
-              <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+          <node concept="1Ls8ON" id="4XPt_HaCvhk" role="3cqZAk">
+            <node concept="2OqwBi" id="4XPt_HauIyE" role="1Lso8e">
+              <node concept="13iPFW" id="4XPt_HauInp" role="2Oq$k0" />
+              <node concept="3TrcHB" id="4XPt_HauIGq" role="2OqNvi">
+                <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+              </node>
             </node>
+            <node concept="3clFbT" id="4XPt_HaCvD3" role="1Lso8e" />
           </node>
         </node>
       </node>
@@ -2027,6 +2079,10 @@
           <ref role="3uigEE" to="lui2:~SRepository" resolve="SRepository" />
         </node>
       </node>
+      <node concept="1LlUBW" id="4XPt_HaCsnk" role="3clF45">
+        <node concept="17QB3L" id="4XPt_HaCsJL" role="1Lm7xW" />
+        <node concept="10P_77" id="4XPt_HaCsUt" role="1Lm7xW" />
+      </node>
     </node>
     <node concept="13hLZK" id="4Wm$DJ9cjhM" role="13h7CW">
       <node concept="3clFbS" id="4Wm$DJ9cjhN" role="2VODD2" />
diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
index bdae3985..0d16bcf8 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
@@ -17,6 +17,8 @@
     <import index="a1af" ref="r:839ac015-7de1-49f3-ac8f-8d7c6d47259d(org.mpsqa.lint.generic.structure)" />
     <import index="qqy" ref="r:baac1a2f-1e52-45fa-95c5-02a3dfae441c(org.mpsqa.lint.generic.util)" />
     <import index="lzb2" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.ui(MPS.IDEA/)" />
+    <import index="guwi" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.io(JDK/)" />
+    <import index="z60i" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.awt(JDK/)" />
     <import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
     <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
     <import index="mhbf" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)" implicit="true" />
@@ -25,8 +27,15 @@
     <import index="tpco" ref="r:00000000-0000-4000-0000-011c89590284(jetbrains.mps.lang.core.editor)" implicit="true" />
   </imports>
   <registry>
+    <language id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples">
+      <concept id="1238857743184" name="jetbrains.mps.baseLanguage.tuples.structure.IndexedTupleMemberAccessExpression" flags="nn" index="1LFfDK">
+        <child id="1238857764950" name="tuple" index="1LFl5Q" />
+        <child id="1238857834412" name="index" index="1LF_Uc" />
+      </concept>
+    </language>
     <language id="18bc6592-03a6-4e29-a83a-7ff23bde13ba" name="jetbrains.mps.lang.editor">
       <concept id="1402906326896143883" name="jetbrains.mps.lang.editor.structure.CellKeyMap_FunctionParm_selectedNode" flags="nn" index="0GJ7k" />
+      <concept id="1402906326895675325" name="jetbrains.mps.lang.editor.structure.CellActionMap_FunctionParm_selectedNode" flags="nn" index="0IXxy" />
       <concept id="5991739802479784073" name="jetbrains.mps.lang.editor.structure.MenuTypeDefault" flags="ng" index="22hDWj" />
       <concept id="1071666914219" name="jetbrains.mps.lang.editor.structure.ConceptEditorDeclaration" flags="ig" index="24kQdi">
         <child id="1078153129734" name="inspectedCellModel" index="6VMZX" />
@@ -39,6 +48,7 @@
       <concept id="1106270549637" name="jetbrains.mps.lang.editor.structure.CellLayout_Horizontal" flags="nn" index="2iRfu4" />
       <concept id="1106270571710" name="jetbrains.mps.lang.editor.structure.CellLayout_Vertical" flags="nn" index="2iRkQZ" />
       <concept id="8954657570917870539" name="jetbrains.mps.lang.editor.structure.TransformationLocation_ContextAssistant" flags="ng" index="2j_NTm" />
+      <concept id="3459162043708467089" name="jetbrains.mps.lang.editor.structure.CellActionMap_CanExecuteFunction" flags="in" index="jK8Ss" />
       <concept id="1142886221719" name="jetbrains.mps.lang.editor.structure.QueryFunction_NodeCondition" flags="in" index="pkWqt" />
       <concept id="1142886811589" name="jetbrains.mps.lang.editor.structure.ConceptFunctionParameter_node" flags="nn" index="pncrf" />
       <concept id="1080736578640" name="jetbrains.mps.lang.editor.structure.BaseEditorComponent" flags="ig" index="2wURMF">
@@ -97,6 +107,16 @@
       <concept id="1103016434866" name="jetbrains.mps.lang.editor.structure.CellModel_JComponent" flags="sg" stub="8104358048506731196" index="3gTLQM">
         <child id="1176475119347" name="componentProvider" index="3FoqZy" />
       </concept>
+      <concept id="1139535219966" name="jetbrains.mps.lang.editor.structure.CellActionMapDeclaration" flags="ig" index="1h_SRR">
+        <reference id="1139535219968" name="applicableConcept" index="1h_SK9" />
+        <child id="1139535219969" name="item" index="1h_SK8" />
+      </concept>
+      <concept id="1139535280617" name="jetbrains.mps.lang.editor.structure.CellActionMapItem" flags="lg" index="1hA7zw">
+        <property id="1139535298778" name="actionId" index="1hAc7j" />
+        <child id="3459162043708468028" name="canExecuteFunction" index="jK8aL" />
+        <child id="1139535280620" name="executeFunction" index="1hA7z_" />
+      </concept>
+      <concept id="1139535439104" name="jetbrains.mps.lang.editor.structure.CellActionMap_ExecuteFunction" flags="in" index="1hAIg9" />
       <concept id="5692353713941573329" name="jetbrains.mps.lang.editor.structure.QueryFunction_TransformationMenu_ActionLabelText" flags="ig" index="1hCUdq" />
       <concept id="1088013125922" name="jetbrains.mps.lang.editor.structure.CellModel_RefCell" flags="sg" stub="730538219795941030" index="1iCGBv">
         <child id="1088186146602" name="editorComponent" index="1sWHZn" />
@@ -117,6 +137,7 @@
       </concept>
       <concept id="1073389214265" name="jetbrains.mps.lang.editor.structure.EditorCellModel" flags="ng" index="3EYTF0">
         <reference id="1081339532145" name="keyMap" index="34QXea" />
+        <reference id="1139959269582" name="actionMap" index="1ERwB7" />
         <child id="1142887637401" name="renderingCondition" index="pqm2j" />
       </concept>
       <concept id="1073389446423" name="jetbrains.mps.lang.editor.structure.CellModel_Collection" flags="sn" stub="3013115976261988961" index="3EZMnI">
@@ -171,6 +192,9 @@
       </concept>
       <concept id="4836112446988635817" name="jetbrains.mps.baseLanguage.structure.UndefinedType" flags="in" index="2jxLKc" />
       <concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
+      <concept id="8118189177080264853" name="jetbrains.mps.baseLanguage.structure.AlternativeType" flags="ig" index="nSUau">
+        <child id="8118189177080264854" name="alternative" index="nSUat" />
+      </concept>
       <concept id="1465982738277781862" name="jetbrains.mps.baseLanguage.structure.PlaceholderMember" flags="nn" index="2tJIrI" />
       <concept id="1188207840427" name="jetbrains.mps.baseLanguage.structure.AnnotationInstance" flags="nn" index="2AHcQZ">
         <reference id="1188208074048" name="annotation" index="2AI5Lk" />
@@ -192,6 +216,7 @@
       <concept id="1070475926800" name="jetbrains.mps.baseLanguage.structure.StringLiteral" flags="nn" index="Xl_RD">
         <property id="1070475926801" name="value" index="Xl_RC" />
       </concept>
+      <concept id="4952749571008284462" name="jetbrains.mps.baseLanguage.structure.CatchVariable" flags="ng" index="XOnhg" />
       <concept id="1182160077978" name="jetbrains.mps.baseLanguage.structure.AnonymousClassCreator" flags="nn" index="YeOm9">
         <child id="1182160096073" name="cls" index="YeSDq" />
       </concept>
@@ -277,10 +302,18 @@
         <child id="1081773367579" name="rightExpression" index="3uHU7w" />
         <child id="1081773367580" name="leftExpression" index="3uHU7B" />
       </concept>
+      <concept id="3093926081414150598" name="jetbrains.mps.baseLanguage.structure.MultipleCatchClause" flags="ng" index="3uVAMA">
+        <child id="8276990574895933173" name="catchBody" index="1zc67A" />
+        <child id="8276990574895933172" name="throwable" index="1zc67B" />
+      </concept>
       <concept id="1073239437375" name="jetbrains.mps.baseLanguage.structure.NotEqualsExpression" flags="nn" index="3y3z36" />
       <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
         <child id="1178549979242" name="visibility" index="1B3o_S" />
       </concept>
+      <concept id="5351203823916750322" name="jetbrains.mps.baseLanguage.structure.TryUniversalStatement" flags="nn" index="3J1_TO">
+        <child id="8276990574886367510" name="catchClause" index="1zxBo5" />
+        <child id="8276990574886367508" name="body" index="1zxBo7" />
+      </concept>
       <concept id="1163668896201" name="jetbrains.mps.baseLanguage.structure.TernaryOperatorExpression" flags="nn" index="3K4zz7">
         <child id="1163668914799" name="condition" index="3K4Cdx" />
         <child id="1163668922816" name="ifTrue" index="3K4E3e" />
@@ -308,6 +341,12 @@
         <child id="1199569916463" name="body" index="1bW5cS" />
       </concept>
     </language>
+    <language id="760a0a8c-eabb-4521-8bfd-65db761a9ba3" name="jetbrains.mps.baseLanguage.logging">
+      <concept id="2034914114981261497" name="jetbrains.mps.baseLanguage.logging.structure.LogLowLevelStatement" flags="ng" index="RRSsy">
+        <property id="2034914114981261751" name="severity" index="RRSoG" />
+        <child id="2034914114981261753" name="message" index="RRSoy" />
+      </concept>
+    </language>
     <language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
       <concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
       <concept id="1138757581985" name="jetbrains.mps.lang.smodel.structure.Link_SetNewChildOperation" flags="nn" index="zfrQC" />
@@ -1188,18 +1227,24 @@
           <property role="3F0ifm" value="location" />
         </node>
         <node concept="1HlG4h" id="4XPt_HauX2X" role="3EZMnx">
+          <ref role="1ERwB7" node="4XPt_HaCr29" resolve="ResultLocationClick" />
           <node concept="1HfYo3" id="4XPt_HauX2Z" role="1HlULh">
             <node concept="3TQlhw" id="4XPt_HauX31" role="1Hhtcw">
               <node concept="3clFbS" id="4XPt_HauX33" role="2VODD2">
                 <node concept="3clFbF" id="4XPt_HauX52" role="3cqZAp">
-                  <node concept="2OqwBi" id="4XPt_HauXm_" role="3clFbG">
-                    <node concept="pncrf" id="4XPt_HauX51" role="2Oq$k0" />
-                    <node concept="2qgKlT" id="4XPt_HauXxE" role="2OqNvi">
-                      <ref role="37wK5l" to="b659:4XPt_HauH1N" resolve="formatLocation" />
-                      <node concept="2OqwBi" id="4XPt_HaxFjR" role="37wK5m">
-                        <node concept="1Q80Hx" id="4XPt_HaxF24" role="2Oq$k0" />
-                        <node concept="liA8E" id="4XPt_HaxFzZ" role="2OqNvi">
-                          <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+                  <node concept="1LFfDK" id="4XPt_HaCwD1" role="3clFbG">
+                    <node concept="3cmrfG" id="4XPt_HaCwGk" role="1LF_Uc">
+                      <property role="3cmrfH" value="0" />
+                    </node>
+                    <node concept="2OqwBi" id="4XPt_HauXm_" role="1LFl5Q">
+                      <node concept="pncrf" id="4XPt_HauX51" role="2Oq$k0" />
+                      <node concept="2qgKlT" id="4XPt_HauXxE" role="2OqNvi">
+                        <ref role="37wK5l" to="b659:4XPt_HauH1N" resolve="formatLocation" />
+                        <node concept="2OqwBi" id="4XPt_HaxFjR" role="37wK5m">
+                          <node concept="1Q80Hx" id="4XPt_HaxF24" role="2Oq$k0" />
+                          <node concept="liA8E" id="4XPt_HaxFzZ" role="2OqNvi">
+                            <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+                          </node>
                         </node>
                       </node>
                     </node>
@@ -1231,6 +1276,7 @@
         <node concept="3XFhqQ" id="4XPt_Hap3VX" role="3EZMnx" />
         <node concept="3F0A7n" id="2I_DQhHdXo" role="3EZMnx">
           <ref role="1NtTu8" to="a1af:6gY6GEDvQYT" resolve="result" />
+          <ref role="1ERwB7" node="4XPt_HaCr29" resolve="ResultLocationClick" />
           <node concept="3k4GqR" id="4XPt_Har$PG" role="3F10Kt">
             <node concept="3k4GqP" id="4XPt_Har$PH" role="3k4GqO">
               <node concept="3clFbS" id="4XPt_Har$PI" role="2VODD2">
@@ -1777,5 +1823,146 @@
       </node>
     </node>
   </node>
+  <node concept="1h_SRR" id="4XPt_HaCr29">
+    <property role="3GE5qa" value="previous_results" />
+    <property role="TrG5h" value="ResultLocationClick" />
+    <ref role="1h_SK9" to="a1af:6gY6GEDvQYS" resolve="ResultEntry" />
+    <node concept="1hA7zw" id="4XPt_HaCr2a" role="1h_SK8">
+      <property role="1hAc7j" value="1FSxSwWqMNJ/click_action_id" />
+      <node concept="1hAIg9" id="4XPt_HaCr2b" role="1hA7z_">
+        <node concept="3clFbS" id="4XPt_HaCr2c" role="2VODD2">
+          <node concept="3J1_TO" id="4XPt_HaCr2T" role="3cqZAp">
+            <node concept="3uVAMA" id="4XPt_HaCr3c" role="1zxBo5">
+              <node concept="XOnhg" id="4XPt_HaCr3d" role="1zc67B">
+                <property role="TrG5h" value="io" />
+                <node concept="nSUau" id="4XPt_HaCr3e" role="1tU5fm">
+                  <node concept="3uibUv" id="4XPt_HaCr3M" role="nSUat">
+                    <ref role="3uigEE" to="guwi:~IOException" resolve="IOException" />
+                  </node>
+                </node>
+              </node>
+              <node concept="3clFbS" id="4XPt_HaCr3f" role="1zc67A">
+                <node concept="RRSsy" id="4XPt_HaCr5H" role="3cqZAp">
+                  <property role="RRSoG" value="gZ5fh_4/error" />
+                  <node concept="3cpWs3" id="4XPt_HaCruz" role="RRSoy">
+                    <node concept="2OqwBi" id="4XPt_HaCFZ2" role="3uHU7w">
+                      <node concept="0IXxy" id="4XPt_HaCFLf" role="2Oq$k0" />
+                      <node concept="3TrcHB" id="4XPt_HaCG9X" role="2OqNvi">
+                        <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                      </node>
+                    </node>
+                    <node concept="Xl_RD" id="4XPt_HaCr5J" role="3uHU7B">
+                      <property role="Xl_RC" value="Couldn't open " />
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbS" id="4XPt_HaCr2U" role="1zxBo7">
+              <node concept="3cpWs8" id="4XPt_HaDmUN" role="3cqZAp">
+                <node concept="3cpWsn" id="4XPt_HaDmUO" role="3cpWs9">
+                  <property role="TrG5h" value="file" />
+                  <node concept="3uibUv" id="4XPt_HaDlNx" role="1tU5fm">
+                    <ref role="3uigEE" to="guwi:~File" resolve="File" />
+                  </node>
+                  <node concept="2ShNRf" id="4XPt_HaDmUP" role="33vP2m">
+                    <node concept="1pGfFk" id="4XPt_HaDmUQ" role="2ShVmc">
+                      <property role="373rjd" value="true" />
+                      <ref role="37wK5l" to="guwi:~File.&lt;init&gt;(java.lang.String)" resolve="File" />
+                      <node concept="2OqwBi" id="4XPt_HaDmUR" role="37wK5m">
+                        <node concept="0IXxy" id="4XPt_HaDmUS" role="2Oq$k0" />
+                        <node concept="3TrcHB" id="4XPt_HaDmUT" role="2OqNvi">
+                          <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3clFbJ" id="4XPt_HaDn5x" role="3cqZAp">
+                <node concept="3clFbS" id="4XPt_HaDn5z" role="3clFbx">
+                  <node concept="3clFbF" id="4XPt_HaDnKW" role="3cqZAp">
+                    <node concept="37vLTI" id="4XPt_HaDo4s" role="3clFbG">
+                      <node concept="2OqwBi" id="4XPt_HaDo59" role="37vLTx">
+                        <node concept="37vLTw" id="4XPt_HaDo4I" role="2Oq$k0">
+                          <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
+                        </node>
+                        <node concept="liA8E" id="4XPt_HaDoql" role="2OqNvi">
+                          <ref role="37wK5l" to="guwi:~File.getParentFile()" resolve="getParentFile" />
+                        </node>
+                      </node>
+                      <node concept="37vLTw" id="4XPt_HaDnKU" role="37vLTJ">
+                        <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+                <node concept="3fqX7Q" id="4XPt_HaDnJa" role="3clFbw">
+                  <node concept="2OqwBi" id="4XPt_HaDnJc" role="3fr31v">
+                    <node concept="37vLTw" id="4XPt_HaDnJd" role="2Oq$k0">
+                      <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
+                    </node>
+                    <node concept="liA8E" id="4XPt_HaDnJe" role="2OqNvi">
+                      <ref role="37wK5l" to="guwi:~File.isDirectory()" resolve="isDirectory" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3clFbF" id="4XPt_HaCGgF" role="3cqZAp">
+                <node concept="2OqwBi" id="4XPt_HaCGoE" role="3clFbG">
+                  <node concept="2YIFZM" id="4XPt_HaCGhd" role="2Oq$k0">
+                    <ref role="37wK5l" to="z60i:~Desktop.getDesktop()" resolve="getDesktop" />
+                    <ref role="1Pybhc" to="z60i:~Desktop" resolve="Desktop" />
+                  </node>
+                  <node concept="liA8E" id="4XPt_HaCGwI" role="2OqNvi">
+                    <ref role="37wK5l" to="z60i:~Desktop.open(java.io.File)" resolve="open" />
+                    <node concept="37vLTw" id="4XPt_HaDmUU" role="37wK5m">
+                      <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="jK8Ss" id="4XPt_HaCxr4" role="jK8aL">
+        <node concept="3clFbS" id="4XPt_HaCxr5" role="2VODD2">
+          <node concept="3clFbF" id="4XPt_HaCrxs" role="3cqZAp">
+            <node concept="1Wc70l" id="4XPt_HaDWtU" role="3clFbG">
+              <node concept="3y3z36" id="4XPt_HaDX_6" role="3uHU7B">
+                <node concept="10Nm6u" id="4XPt_HaDX_b" role="3uHU7w" />
+                <node concept="2OqwBi" id="4XPt_HaDWRX" role="3uHU7B">
+                  <node concept="0IXxy" id="4XPt_HaDWCj" role="2Oq$k0" />
+                  <node concept="3TrcHB" id="4XPt_HaDX4O" role="2OqNvi">
+                    <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                  </node>
+                </node>
+              </node>
+              <node concept="3fqX7Q" id="4XPt_HaCF_O" role="3uHU7w">
+                <node concept="1LFfDK" id="4XPt_HaCF_Q" role="3fr31v">
+                  <node concept="3cmrfG" id="4XPt_HaCF_R" role="1LF_Uc">
+                    <property role="3cmrfH" value="1" />
+                  </node>
+                  <node concept="2OqwBi" id="4XPt_HaCF_S" role="1LFl5Q">
+                    <node concept="0IXxy" id="4XPt_HaCF_T" role="2Oq$k0" />
+                    <node concept="2qgKlT" id="4XPt_HaCF_U" role="2OqNvi">
+                      <ref role="37wK5l" to="b659:4XPt_HauH1N" resolve="formatLocation" />
+                      <node concept="2OqwBi" id="4XPt_HaCF_V" role="37wK5m">
+                        <node concept="1Q80Hx" id="4XPt_HaCF_W" role="2Oq$k0" />
+                        <node concept="liA8E" id="4XPt_HaCF_X" role="2OqNvi">
+                          <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+      </node>
+    </node>
+  </node>
 </model>
 
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.filesystem.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.filesystem.mps
index 12bf30b5..2c752306 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.filesystem.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.filesystem.mps
@@ -23,6 +23,8 @@
     <import index="3ju5" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.vfs(MPS.Core/)" />
     <import index="w1kc" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.smodel(MPS.Core/)" />
     <import index="j8aq" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.module(MPS.Core/)" />
+    <import index="18ew" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.util(MPS.Core/)" />
+    <import index="zn9m" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.util(MPS.IDEA/)" />
     <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
   </imports>
   <registry>
@@ -139,6 +141,7 @@
       </concept>
       <concept id="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
         <reference id="1107535924139" name="classifier" index="3uigEE" />
+        <child id="1109201940907" name="parameter" index="11_B2D" />
       </concept>
       <concept id="1081773326031" name="jetbrains.mps.baseLanguage.structure.BinaryOperation" flags="nn" index="3uHJSO">
         <child id="1081773367579" name="rightExpression" index="3uHU7w" />
@@ -256,11 +259,23 @@
           <node concept="3cpWsn" id="4mUq39YEamm" role="3cpWs9">
             <property role="TrG5h" value="res" />
             <node concept="_YKpA" id="4mUq39YEamf" role="1tU5fm">
-              <node concept="17QB3L" id="4mUq39YEaNC" role="_ZDj9" />
+              <node concept="3uibUv" id="4XPt_HaAEXb" role="_ZDj9">
+                <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                <node concept="17QB3L" id="4XPt_HaAJ$c" role="11_B2D" />
+                <node concept="3uibUv" id="4XPt_HaAMo2" role="11_B2D">
+                  <ref role="3uigEE" to="guwi:~File" resolve="File" />
+                </node>
+              </node>
             </node>
             <node concept="2ShNRf" id="4mUq39YEbPZ" role="33vP2m">
-              <node concept="2Jqq0_" id="4mUq39YEcDU" role="2ShVmc">
-                <node concept="17QB3L" id="4mUq39YEddI" role="HW$YZ" />
+              <node concept="2Jqq0_" id="4XPt_HaAHjs" role="2ShVmc">
+                <node concept="3uibUv" id="4XPt_HaAHJO" role="HW$YZ">
+                  <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                  <node concept="17QB3L" id="4XPt_HaAOml" role="11_B2D" />
+                  <node concept="3uibUv" id="4XPt_HaAOTJ" role="11_B2D">
+                    <ref role="3uigEE" to="guwi:~File" resolve="File" />
+                  </node>
+                </node>
               </node>
             </node>
           </node>
@@ -338,9 +353,15 @@
                     <ref role="3cqZAo" node="4mUq39YEamm" resolve="res" />
                   </node>
                   <node concept="TSZUe" id="6EiPrTPS7dZ" role="2OqNvi">
-                    <node concept="vsK6v" id="6EiPrTPUBp4" role="25WWJ7">
-                      <node concept="37vLTw" id="6EiPrTPVj5$" role="vsfCu">
-                        <ref role="3cqZAo" node="4mUq39YBw_j" resolve="ioe" />
+                    <node concept="2ShNRf" id="4XPt_HaB7jl" role="25WWJ7">
+                      <node concept="1pGfFk" id="4XPt_HaB8Wf" role="2ShVmc">
+                        <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                        <node concept="vsK6v" id="6EiPrTPUBp4" role="37wK5m">
+                          <node concept="37vLTw" id="6EiPrTPVj5$" role="vsfCu">
+                            <ref role="3cqZAo" node="4mUq39YBw_j" resolve="ioe" />
+                          </node>
+                        </node>
+                        <node concept="10Nm6u" id="4XPt_HaB9Qy" role="37wK5m" />
                       </node>
                     </node>
                   </node>
@@ -354,56 +375,69 @@
                 <property role="TrG5h" value="file" />
               </node>
               <node concept="3clFbS" id="4mUq39YE21$" role="2LFqv$">
-                <node concept="3clFbF" id="4mUq39YEd_S" role="3cqZAp">
-                  <node concept="2OqwBi" id="4mUq39YEhxP" role="3clFbG">
-                    <node concept="37vLTw" id="4mUq39YEd_Q" role="2Oq$k0">
+                <node concept="3clFbF" id="4XPt_HaAPtR" role="3cqZAp">
+                  <node concept="2OqwBi" id="4XPt_HaAThm" role="3clFbG">
+                    <node concept="37vLTw" id="4XPt_HaAPtP" role="2Oq$k0">
                       <ref role="3cqZAo" node="4mUq39YEamm" resolve="res" />
                     </node>
-                    <node concept="TSZUe" id="4mUq39YEkBa" role="2OqNvi">
-                      <node concept="3cpWs3" id="4mUq39YDSLq" role="25WWJ7">
-                        <node concept="Xl_RD" id="4mUq39YDSLr" role="3uHU7w">
-                          <property role="Xl_RC" value="KB" />
-                        </node>
-                        <node concept="3cpWs3" id="4mUq39YDSLs" role="3uHU7B">
-                          <node concept="3cpWs3" id="4mUq39YDSLt" role="3uHU7B">
-                            <node concept="3cpWs3" id="4mUq39YDSLu" role="3uHU7B">
-                              <node concept="Xl_RD" id="4mUq39YDSLv" role="3uHU7B">
-                                <property role="Xl_RC" value="File '" />
-                              </node>
-                              <node concept="2OqwBi" id="4mUq39YDSLw" role="3uHU7w">
-                                <node concept="2OqwBi" id="4mUq39YDSLx" role="2Oq$k0">
-                                  <node concept="2OqwBi" id="4mUq39YDSLy" role="2Oq$k0">
-                                    <node concept="liA8E" id="4mUq39YDSLz" role="2OqNvi">
-                                      <ref role="37wK5l" to="eoo2:~Path.relativize(java.nio.file.Path)" resolve="relativize" />
-                                      <node concept="2GrUjf" id="4mUq39YE9xp" role="37wK5m">
-                                        <ref role="2Gs0qQ" node="4mUq39YE21w" resolve="file" />
+                    <node concept="TSZUe" id="4XPt_HaAUWG" role="2OqNvi">
+                      <node concept="2ShNRf" id="4XPt_HaAVeF" role="25WWJ7">
+                        <node concept="1pGfFk" id="4XPt_HaAVF4" role="2ShVmc">
+                          <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                          <node concept="3cpWs3" id="4mUq39YDSLq" role="37wK5m">
+                            <node concept="Xl_RD" id="4mUq39YDSLr" role="3uHU7w">
+                              <property role="Xl_RC" value="KB" />
+                            </node>
+                            <node concept="3cpWs3" id="4mUq39YDSLs" role="3uHU7B">
+                              <node concept="3cpWs3" id="4mUq39YDSLt" role="3uHU7B">
+                                <node concept="3cpWs3" id="4mUq39YDSLu" role="3uHU7B">
+                                  <node concept="Xl_RD" id="4mUq39YDSLv" role="3uHU7B">
+                                    <property role="Xl_RC" value="File '" />
+                                  </node>
+                                  <node concept="2OqwBi" id="4mUq39YDSLw" role="3uHU7w">
+                                    <node concept="2OqwBi" id="4mUq39YDSLx" role="2Oq$k0">
+                                      <node concept="2OqwBi" id="4mUq39YDSLy" role="2Oq$k0">
+                                        <node concept="liA8E" id="4mUq39YDSLz" role="2OqNvi">
+                                          <ref role="37wK5l" to="eoo2:~Path.relativize(java.nio.file.Path)" resolve="relativize" />
+                                          <node concept="2GrUjf" id="4mUq39YE9xp" role="37wK5m">
+                                            <ref role="2Gs0qQ" node="4mUq39YE21w" resolve="file" />
+                                          </node>
+                                        </node>
+                                        <node concept="37vLTw" id="4mUq39YDSL_" role="2Oq$k0">
+                                          <ref role="3cqZAo" node="4mUq39YDTMh" resolve="pathOfDirectoryContainingProject" />
+                                        </node>
+                                      </node>
+                                      <node concept="liA8E" id="4mUq39YDSLA" role="2OqNvi">
+                                        <ref role="37wK5l" to="eoo2:~Path.toString()" resolve="toString" />
                                       </node>
                                     </node>
-                                    <node concept="37vLTw" id="4mUq39YDSL_" role="2Oq$k0">
-                                      <ref role="3cqZAo" node="4mUq39YDTMh" resolve="pathOfDirectoryContainingProject" />
+                                    <node concept="liA8E" id="4mUq39YDSLB" role="2OqNvi">
+                                      <ref role="37wK5l" to="wyt6:~String.replace(char,char)" resolve="replace" />
+                                      <node concept="1Xhbcc" id="4mUq39YDSLC" role="37wK5m">
+                                        <property role="1XhdNS" value="\\" />
+                                      </node>
+                                      <node concept="1Xhbcc" id="4mUq39YDSLD" role="37wK5m">
+                                        <property role="1XhdNS" value="/" />
+                                      </node>
                                     </node>
                                   </node>
-                                  <node concept="liA8E" id="4mUq39YDSLA" role="2OqNvi">
-                                    <ref role="37wK5l" to="eoo2:~Path.toString()" resolve="toString" />
-                                  </node>
                                 </node>
-                                <node concept="liA8E" id="4mUq39YDSLB" role="2OqNvi">
-                                  <ref role="37wK5l" to="wyt6:~String.replace(char,char)" resolve="replace" />
-                                  <node concept="1Xhbcc" id="4mUq39YDSLC" role="37wK5m">
-                                    <property role="1XhdNS" value="\\" />
-                                  </node>
-                                  <node concept="1Xhbcc" id="4mUq39YDSLD" role="37wK5m">
-                                    <property role="1XhdNS" value="/" />
-                                  </node>
+                                <node concept="Xl_RD" id="4mUq39YDSLE" role="3uHU7w">
+                                  <property role="Xl_RC" value="' has a size bigger than " />
                                 </node>
                               </node>
-                            </node>
-                            <node concept="Xl_RD" id="4mUq39YDSLE" role="3uHU7w">
-                              <property role="Xl_RC" value="' has a size bigger than " />
+                              <node concept="2j1LYi" id="4mUq39YDT75" role="3uHU7w">
+                                <ref role="2j1LYj" node="pFzydTBLXy" resolve="sizeInKb" />
+                              </node>
                             </node>
                           </node>
-                          <node concept="2j1LYi" id="4mUq39YDT75" role="3uHU7w">
-                            <ref role="2j1LYj" node="pFzydTBLXy" resolve="sizeInKb" />
+                          <node concept="2OqwBi" id="4XPt_HaB5zA" role="37wK5m">
+                            <node concept="2GrUjf" id="4XPt_HaB4hZ" role="2Oq$k0">
+                              <ref role="2Gs0qQ" node="4mUq39YE21w" resolve="file" />
+                            </node>
+                            <node concept="liA8E" id="4XPt_HaB6IO" role="2OqNvi">
+                              <ref role="37wK5l" to="eoo2:~Path.toFile()" resolve="toFile" />
+                            </node>
                           </node>
                         </node>
                       </node>
@@ -424,7 +458,7 @@
           <node concept="1wplmZ" id="4mUq39YMPDU" role="1zxBo6">
             <node concept="3clFbS" id="4mUq39YMPDV" role="1wplMD">
               <node concept="3cpWs6" id="6HKgezSyQlD" role="3cqZAp">
-                <node concept="37vLTw" id="4mUq39YEoy4" role="3cqZAk">
+                <node concept="37vLTw" id="4XPt_HaBwfD" role="3cqZAk">
                   <ref role="3cqZAo" node="4mUq39YEamm" resolve="res" />
                 </node>
               </node>

From 2ed5003c269e6696fbe28d2364f8a8be1265f5d1 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Mon, 23 Sep 2024 09:39:59 +0200
Subject: [PATCH 12/42] mpsqa.lint: make it possible to also open model and
 module locations

---
 .../org.mpsqa.lint.generic.behavior.mps       | 547 +++++++++++++++---
 .../models/org.mpsqa.lint.generic.editor.mps  | 148 +----
 2 files changed, 495 insertions(+), 200 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
index 204a722c..50ea576f 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
@@ -28,6 +28,9 @@
     <import index="alof" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.project(MPS.Platform/)" />
     <import index="dush" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.persistence(MPS.OpenAPI/)" />
     <import index="guwi" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.io(JDK/)" />
+    <import index="z60i" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.awt(JDK/)" />
+    <import index="ends" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.extapi.persistence(MPS.Core/)" />
+    <import index="3ju5" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.vfs(MPS.Core/)" implicit="true" />
     <import index="vdrq" ref="r:85354f47-14fd-40e6-a7cc-2d1aa842c4cd(jetbrains.mps.lang.text.behavior)" implicit="true" />
     <import index="tpcu" ref="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" implicit="true" />
   </imports>
@@ -44,6 +47,7 @@
       </concept>
     </language>
     <language id="af65afd8-f0dd-4942-87d9-63a55f2a9db1" name="jetbrains.mps.lang.behavior">
+      <concept id="6496299201655527393" name="jetbrains.mps.lang.behavior.structure.LocalBehaviorMethodCall" flags="nn" index="BsUDl" />
       <concept id="1225194240794" name="jetbrains.mps.lang.behavior.structure.ConceptBehavior" flags="ng" index="13h7C7">
         <reference id="1225194240799" name="concept" index="13h7C2" />
         <child id="1225194240805" name="method" index="13h7CS" />
@@ -58,6 +62,10 @@
       <concept id="1225194691553" name="jetbrains.mps.lang.behavior.structure.ThisNodeExpression" flags="nn" index="13iPFW" />
     </language>
     <language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
+      <concept id="1224071154655" name="jetbrains.mps.baseLanguage.structure.AsExpression" flags="nn" index="0kSF2">
+        <child id="1224071154657" name="classifierType" index="0kSFW" />
+        <child id="1224071154656" name="expression" index="0kSFX" />
+      </concept>
       <concept id="1082485599095" name="jetbrains.mps.baseLanguage.structure.BlockStatement" flags="nn" index="9aQIb">
         <child id="1082485599096" name="statements" index="9aQI4" />
       </concept>
@@ -92,8 +100,16 @@
       <concept id="1081236700937" name="jetbrains.mps.baseLanguage.structure.StaticMethodCall" flags="nn" index="2YIFZM">
         <reference id="1144433194310" name="classConcept" index="1Pybhc" />
       </concept>
+      <concept id="1081256982272" name="jetbrains.mps.baseLanguage.structure.InstanceOfExpression" flags="nn" index="2ZW3vV">
+        <child id="1081256993305" name="classType" index="2ZW6by" />
+        <child id="1081256993304" name="leftExpression" index="2ZW6bz" />
+      </concept>
       <concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
       <concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
+      <concept id="1070534934090" name="jetbrains.mps.baseLanguage.structure.CastExpression" flags="nn" index="10QFUN">
+        <child id="1070534934091" name="type" index="10QFUM" />
+        <child id="1070534934092" name="expression" index="10QFUP" />
+      </concept>
       <concept id="1068390468198" name="jetbrains.mps.baseLanguage.structure.ClassConcept" flags="ig" index="312cEu" />
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
@@ -125,6 +141,7 @@
         <child id="1082485599094" name="ifFalseStatement" index="9aQIa" />
         <child id="1068580123160" name="condition" index="3clFbw" />
         <child id="1068580123161" name="ifTrue" index="3clFbx" />
+        <child id="1206060520071" name="elsifClauses" index="3eNLev" />
       </concept>
       <concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
         <child id="1068581517665" name="statement" index="3cqZAp" />
@@ -141,6 +158,13 @@
       </concept>
       <concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
       <concept id="1068581517677" name="jetbrains.mps.baseLanguage.structure.VoidType" flags="in" index="3cqZAl" />
+      <concept id="1206060495898" name="jetbrains.mps.baseLanguage.structure.ElsifClause" flags="ng" index="3eNFk2">
+        <child id="1206060619838" name="condition" index="3eO9$A" />
+        <child id="1206060644605" name="statementList" index="3eOfB_" />
+      </concept>
+      <concept id="1079359253375" name="jetbrains.mps.baseLanguage.structure.ParenthesizedExpression" flags="nn" index="1eOMI4">
+        <child id="1079359253376" name="expression" index="1eOMHV" />
+      </concept>
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
@@ -222,6 +246,12 @@
         <reference id="8182547171709614741" name="target" index="36bGnp" />
       </concept>
     </language>
+    <language id="760a0a8c-eabb-4521-8bfd-65db761a9ba3" name="jetbrains.mps.baseLanguage.logging">
+      <concept id="2034914114981261497" name="jetbrains.mps.baseLanguage.logging.structure.LogLowLevelStatement" flags="ng" index="RRSsy">
+        <property id="2034914114981261751" name="severity" index="RRSoG" />
+        <child id="2034914114981261753" name="message" index="RRSoy" />
+      </concept>
+    </language>
     <language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
       <concept id="1177026924588" name="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" flags="nn" index="chp4Y">
         <reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
@@ -1907,52 +1937,129 @@
         </node>
       </node>
     </node>
-    <node concept="13i0hz" id="4XPt_HauH1N" role="13h7CS">
-      <property role="TrG5h" value="formatLocation" />
-      <node concept="3Tm1VV" id="4XPt_HauH1O" role="1B3o_S" />
-      <node concept="3clFbS" id="4XPt_HauH1Q" role="3clF47">
-        <node concept="3cpWs8" id="4XPt_HauIId" role="3cqZAp">
-          <node concept="3cpWsn" id="4XPt_HauIIe" role="3cpWs9">
+    <node concept="13i0hz" id="4XPt_HaECXY" role="13h7CS">
+      <property role="TrG5h" value="convertLocationToObject" />
+      <node concept="3Tm1VV" id="4XPt_HaECXZ" role="1B3o_S" />
+      <node concept="3uibUv" id="4XPt_HaEDeB" role="3clF45">
+        <ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
+      </node>
+      <node concept="3clFbS" id="4XPt_HaECY1" role="3clF47">
+        <node concept="3cpWs8" id="4XPt_HaEDga" role="3cqZAp">
+          <node concept="3cpWsn" id="4XPt_HaEDgb" role="3cpWs9">
             <property role="TrG5h" value="persistenceFacade" />
-            <node concept="3uibUv" id="4XPt_HauIH$" role="1tU5fm">
+            <node concept="3uibUv" id="4XPt_HaEDgc" role="1tU5fm">
               <ref role="3uigEE" to="dush:~PersistenceFacade" resolve="PersistenceFacade" />
             </node>
-            <node concept="2YIFZM" id="4XPt_HauIIf" role="33vP2m">
+            <node concept="2YIFZM" id="4XPt_HaEDgd" role="33vP2m">
               <ref role="37wK5l" to="dush:~PersistenceFacade.getInstance()" resolve="getInstance" />
               <ref role="1Pybhc" to="dush:~PersistenceFacade" resolve="PersistenceFacade" />
             </node>
           </node>
         </node>
-        <node concept="3J1_TO" id="4XPt_HauHn6" role="3cqZAp">
-          <node concept="3uVAMA" id="4XPt_HauHnV" role="1zxBo5">
-            <node concept="XOnhg" id="4XPt_HauHnW" role="1zc67B">
+        <node concept="3J1_TO" id="4XPt_HaEDge" role="3cqZAp">
+          <node concept="3uVAMA" id="4XPt_HaEDgf" role="1zxBo5">
+            <node concept="XOnhg" id="4XPt_HaEDgg" role="1zc67B">
               <property role="TrG5h" value="e" />
-              <node concept="nSUau" id="4XPt_HauHnX" role="1tU5fm">
-                <node concept="3uibUv" id="4XPt_HauHoC" role="nSUat">
+              <node concept="nSUau" id="4XPt_HaEDgh" role="1tU5fm">
+                <node concept="3uibUv" id="4XPt_HaEDgi" role="nSUat">
                   <ref role="3uigEE" to="wyt6:~Exception" resolve="Exception" />
                 </node>
               </node>
             </node>
-            <node concept="3clFbS" id="4XPt_HauHnY" role="1zc67A" />
+            <node concept="3clFbS" id="4XPt_HaEDgj" role="1zc67A" />
+          </node>
+          <node concept="3clFbS" id="4XPt_HaEDgk" role="1zxBo7">
+            <node concept="3cpWs6" id="4XPt_HaEErf" role="3cqZAp">
+              <node concept="2OqwBi" id="4XPt_HaEDgo" role="3cqZAk">
+                <node concept="37vLTw" id="4XPt_HaEDgp" role="2Oq$k0">
+                  <ref role="3cqZAo" node="4XPt_HaEDgb" resolve="persistenceFacade" />
+                </node>
+                <node concept="liA8E" id="4XPt_HaEDgq" role="2OqNvi">
+                  <ref role="37wK5l" to="dush:~PersistenceFacade.createModelReference(java.lang.String)" resolve="createModelReference" />
+                  <node concept="2OqwBi" id="4XPt_HaEDgr" role="37wK5m">
+                    <node concept="13iPFW" id="4XPt_HaEDgs" role="2Oq$k0" />
+                    <node concept="3TrcHB" id="4XPt_HaEDgt" role="2OqNvi">
+                      <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
           </node>
-          <node concept="3clFbS" id="4XPt_HauHn8" role="1zxBo7">
-            <node concept="3cpWs8" id="4XPt_HaxnmX" role="3cqZAp">
-              <node concept="3cpWsn" id="4XPt_HaxnmY" role="3cpWs9">
+        </node>
+        <node concept="3clFbH" id="4XPt_HaEDgN" role="3cqZAp" />
+        <node concept="3J1_TO" id="4XPt_HaEDgO" role="3cqZAp">
+          <node concept="3uVAMA" id="4XPt_HaEDgP" role="1zxBo5">
+            <node concept="XOnhg" id="4XPt_HaEDgQ" role="1zc67B">
+              <property role="TrG5h" value="e" />
+              <node concept="nSUau" id="4XPt_HaEDgR" role="1tU5fm">
+                <node concept="3uibUv" id="4XPt_HaEDgS" role="nSUat">
+                  <ref role="3uigEE" to="wyt6:~Exception" resolve="Exception" />
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbS" id="4XPt_HaEDgT" role="1zc67A" />
+          </node>
+          <node concept="3clFbS" id="4XPt_HaEDgU" role="1zxBo7">
+            <node concept="3cpWs6" id="4XPt_HaEEFb" role="3cqZAp">
+              <node concept="2OqwBi" id="4XPt_HaEDh0" role="3cqZAk">
+                <node concept="37vLTw" id="4XPt_HaEDh1" role="2Oq$k0">
+                  <ref role="3cqZAo" node="4XPt_HaEDgb" resolve="persistenceFacade" />
+                </node>
+                <node concept="liA8E" id="4XPt_HaEDh2" role="2OqNvi">
+                  <ref role="37wK5l" to="dush:~PersistenceFacade.createModuleReference(java.lang.String)" resolve="createModuleReference" />
+                  <node concept="2OqwBi" id="4XPt_HaEDh3" role="37wK5m">
+                    <node concept="13iPFW" id="4XPt_HaEDh4" role="2Oq$k0" />
+                    <node concept="3TrcHB" id="4XPt_HaEDh5" role="2OqNvi">
+                      <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="4XPt_HaEDh8" role="3cqZAp" />
+        <node concept="3cpWs6" id="4XPt_HaEDh9" role="3cqZAp">
+          <node concept="2OqwBi" id="4XPt_HaEDhb" role="3cqZAk">
+            <node concept="13iPFW" id="4XPt_HaEDhc" role="2Oq$k0" />
+            <node concept="3TrcHB" id="4XPt_HaEDhd" role="2OqNvi">
+              <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+            </node>
+          </node>
+        </node>
+      </node>
+    </node>
+    <node concept="13i0hz" id="4XPt_HauH1N" role="13h7CS">
+      <property role="TrG5h" value="formatLocation" />
+      <node concept="3Tm1VV" id="4XPt_HauH1O" role="1B3o_S" />
+      <node concept="3clFbS" id="4XPt_HauH1Q" role="3clF47">
+        <node concept="3cpWs8" id="4XPt_HaEFop" role="3cqZAp">
+          <node concept="3cpWsn" id="4XPt_HaEFoq" role="3cpWs9">
+            <property role="TrG5h" value="obj" />
+            <node concept="3uibUv" id="4XPt_HaEFor" role="1tU5fm">
+              <ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
+            </node>
+            <node concept="BsUDl" id="4XPt_HaEFDj" role="33vP2m">
+              <ref role="37wK5l" node="4XPt_HaECXY" resolve="convertLocationToObject" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbJ" id="4XPt_HaEGrb" role="3cqZAp">
+          <node concept="3clFbS" id="4XPt_HaEGrd" role="3clFbx">
+            <node concept="3cpWs8" id="4XPt_HaEId7" role="3cqZAp">
+              <node concept="3cpWsn" id="4XPt_HaEId8" role="3cpWs9">
                 <property role="TrG5h" value="modelRef" />
-                <node concept="3uibUv" id="4XPt_Haxnkx" role="1tU5fm">
+                <node concept="3uibUv" id="4XPt_HaEId9" role="1tU5fm">
                   <ref role="3uigEE" to="mhbf:~SModelReference" resolve="SModelReference" />
                 </node>
-                <node concept="2OqwBi" id="4XPt_HaxnmZ" role="33vP2m">
-                  <node concept="37vLTw" id="4XPt_Haxnn0" role="2Oq$k0">
-                    <ref role="3cqZAo" node="4XPt_HauIIe" resolve="persistenceFacade" />
-                  </node>
-                  <node concept="liA8E" id="4XPt_Haxnn1" role="2OqNvi">
-                    <ref role="37wK5l" to="dush:~PersistenceFacade.createModelReference(java.lang.String)" resolve="createModelReference" />
-                    <node concept="2OqwBi" id="4XPt_Haxnn2" role="37wK5m">
-                      <node concept="13iPFW" id="4XPt_Haxnn3" role="2Oq$k0" />
-                      <node concept="3TrcHB" id="4XPt_Haxnn4" role="2OqNvi">
-                        <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
-                      </node>
+                <node concept="1eOMI4" id="4XPt_HaEICK" role="33vP2m">
+                  <node concept="10QFUN" id="4XPt_HaEICH" role="1eOMHV">
+                    <node concept="3uibUv" id="4XPt_HaEICM" role="10QFUM">
+                      <ref role="3uigEE" to="mhbf:~SModelReference" resolve="SModelReference" />
+                    </node>
+                    <node concept="37vLTw" id="4XPt_HaEICN" role="10QFUP">
+                      <ref role="3cqZAo" node="4XPt_HaEFoq" resolve="obj" />
                     </node>
                   </node>
                 </node>
@@ -1965,7 +2072,7 @@
                     <node concept="2OqwBi" id="4XPt_HaxDTQ" role="2Oq$k0">
                       <node concept="2OqwBi" id="4XPt_HaxDj3" role="2Oq$k0">
                         <node concept="37vLTw" id="4XPt_HaxD94" role="2Oq$k0">
-                          <ref role="3cqZAo" node="4XPt_HaxnmY" resolve="modelRef" />
+                          <ref role="3cqZAo" node="4XPt_HaEId8" resolve="modelRef" />
                         </node>
                         <node concept="liA8E" id="4XPt_HaxD_D" role="2OqNvi">
                           <ref role="37wK5l" to="mhbf:~SModelReference.resolve(org.jetbrains.mps.openapi.module.SRepository)" resolve="resolve" />
@@ -1990,7 +2097,7 @@
                       <node concept="2OqwBi" id="4XPt_HauJO2" role="3uHU7w">
                         <node concept="2OqwBi" id="4XPt_HauJwl" role="2Oq$k0">
                           <node concept="37vLTw" id="4XPt_Haxnn5" role="2Oq$k0">
-                            <ref role="3cqZAo" node="4XPt_HaxnmY" resolve="modelRef" />
+                            <ref role="3cqZAo" node="4XPt_HaEId8" resolve="modelRef" />
                           </node>
                           <node concept="liA8E" id="4XPt_HauJE1" role="2OqNvi">
                             <ref role="37wK5l" to="mhbf:~SModelReference.getName()" resolve="getName" />
@@ -2012,55 +2119,66 @@
               </node>
             </node>
           </node>
-        </node>
-        <node concept="3clFbH" id="4XPt_HauHUV" role="3cqZAp" />
-        <node concept="3J1_TO" id="4XPt_HauHOA" role="3cqZAp">
-          <node concept="3uVAMA" id="4XPt_HauHOB" role="1zxBo5">
-            <node concept="XOnhg" id="4XPt_HauHOC" role="1zc67B">
-              <property role="TrG5h" value="e" />
-              <node concept="nSUau" id="4XPt_HauHOD" role="1tU5fm">
-                <node concept="3uibUv" id="4XPt_HauHOE" role="nSUat">
-                  <ref role="3uigEE" to="wyt6:~Exception" resolve="Exception" />
-                </node>
-              </node>
+          <node concept="2ZW3vV" id="4XPt_HaEH27" role="3clFbw">
+            <node concept="3uibUv" id="4XPt_HaEH9u" role="2ZW6by">
+              <ref role="3uigEE" to="mhbf:~SModelReference" resolve="SModelReference" />
+            </node>
+            <node concept="37vLTw" id="4XPt_HaEG_$" role="2ZW6bz">
+              <ref role="3cqZAo" node="4XPt_HaEFoq" resolve="obj" />
             </node>
-            <node concept="3clFbS" id="4XPt_HauHOF" role="1zc67A" />
           </node>
-          <node concept="3clFbS" id="4XPt_HauHOG" role="1zxBo7">
-            <node concept="3cpWs6" id="4XPt_HauHOH" role="3cqZAp">
-              <node concept="1Ls8ON" id="4XPt_HaCtVC" role="3cqZAk">
-                <node concept="3cpWs3" id="4XPt_HayD7j" role="1Lso8e">
-                  <node concept="Xl_RD" id="4XPt_HayDbO" role="3uHU7B">
-                    <property role="Xl_RC" value="module: " />
+          <node concept="3eNFk2" id="4XPt_HaEJ5g" role="3eNLev">
+            <node concept="2ZW3vV" id="4XPt_HaEJqP" role="3eO9$A">
+              <node concept="3uibUv" id="4XPt_HaEJyf" role="2ZW6by">
+                <ref role="3uigEE" to="lui2:~SModuleReference" resolve="SModuleReference" />
+              </node>
+              <node concept="37vLTw" id="4XPt_HaEJdi" role="2ZW6bz">
+                <ref role="3cqZAo" node="4XPt_HaEFoq" resolve="obj" />
+              </node>
+            </node>
+            <node concept="3clFbS" id="4XPt_HaEJ5i" role="3eOfB_">
+              <node concept="3cpWs8" id="4XPt_HaEJQ4" role="3cqZAp">
+                <node concept="3cpWsn" id="4XPt_HaEJQ5" role="3cpWs9">
+                  <property role="TrG5h" value="moduleRef" />
+                  <node concept="3uibUv" id="4XPt_HaEJQ6" role="1tU5fm">
+                    <ref role="3uigEE" to="lui2:~SModuleReference" resolve="SModuleReference" />
                   </node>
-                  <node concept="2OqwBi" id="4XPt_HauK8Z" role="3uHU7w">
-                    <node concept="2OqwBi" id="4XPt_HauHOI" role="2Oq$k0">
-                      <node concept="37vLTw" id="4XPt_HauIIh" role="2Oq$k0">
-                        <ref role="3cqZAo" node="4XPt_HauIIe" resolve="persistenceFacade" />
+                  <node concept="1eOMI4" id="4XPt_HaEKdU" role="33vP2m">
+                    <node concept="10QFUN" id="4XPt_HaEKdR" role="1eOMHV">
+                      <node concept="3uibUv" id="4XPt_HaEKdW" role="10QFUM">
+                        <ref role="3uigEE" to="lui2:~SModuleReference" resolve="SModuleReference" />
                       </node>
-                      <node concept="liA8E" id="4XPt_HauHOK" role="2OqNvi">
-                        <ref role="37wK5l" to="dush:~PersistenceFacade.createModuleReference(java.lang.String)" resolve="createModuleReference" />
-                        <node concept="2OqwBi" id="4XPt_HauHOL" role="37wK5m">
-                          <node concept="13iPFW" id="4XPt_HauHOM" role="2Oq$k0" />
-                          <node concept="3TrcHB" id="4XPt_HauHON" role="2OqNvi">
-                            <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
-                          </node>
-                        </node>
+                      <node concept="37vLTw" id="4XPt_HaEKdX" role="10QFUP">
+                        <ref role="3cqZAo" node="4XPt_HaEFoq" resolve="obj" />
                       </node>
                     </node>
-                    <node concept="liA8E" id="4XPt_HauKj1" role="2OqNvi">
-                      <ref role="37wK5l" to="lui2:~SModuleReference.getModuleName()" resolve="getModuleName" />
-                    </node>
                   </node>
                 </node>
-                <node concept="3clFbT" id="4XPt_HaCuZf" role="1Lso8e">
-                  <property role="3clFbU" value="true" />
+              </node>
+              <node concept="3cpWs6" id="4XPt_HauHOH" role="3cqZAp">
+                <node concept="1Ls8ON" id="4XPt_HaCtVC" role="3cqZAk">
+                  <node concept="3cpWs3" id="4XPt_HayD7j" role="1Lso8e">
+                    <node concept="Xl_RD" id="4XPt_HayDbO" role="3uHU7B">
+                      <property role="Xl_RC" value="module: " />
+                    </node>
+                    <node concept="2OqwBi" id="4XPt_HauK8Z" role="3uHU7w">
+                      <node concept="liA8E" id="4XPt_HauKj1" role="2OqNvi">
+                        <ref role="37wK5l" to="lui2:~SModuleReference.getModuleName()" resolve="getModuleName" />
+                      </node>
+                      <node concept="37vLTw" id="4XPt_HaELF7" role="2Oq$k0">
+                        <ref role="3cqZAo" node="4XPt_HaEJQ5" resolve="moduleRef" />
+                      </node>
+                    </node>
+                  </node>
+                  <node concept="3clFbT" id="4XPt_HaCuZf" role="1Lso8e">
+                    <property role="3clFbU" value="true" />
+                  </node>
                 </node>
               </node>
             </node>
           </node>
         </node>
-        <node concept="3clFbH" id="4XPt_HauI1d" role="3cqZAp" />
+        <node concept="3clFbH" id="4XPt_HaEGgV" role="3cqZAp" />
         <node concept="3cpWs6" id="4XPt_HauIlq" role="3cqZAp">
           <node concept="1Ls8ON" id="4XPt_HaCvhk" role="3cqZAk">
             <node concept="2OqwBi" id="4XPt_HauIyE" role="1Lso8e">
@@ -2084,6 +2202,301 @@
         <node concept="10P_77" id="4XPt_HaCsUt" role="1Lm7xW" />
       </node>
     </node>
+    <node concept="13i0hz" id="4XPt_HaE_RC" role="13h7CS">
+      <property role="TrG5h" value="openLocation" />
+      <node concept="3Tm1VV" id="4XPt_HaE_RD" role="1B3o_S" />
+      <node concept="3cqZAl" id="4XPt_HaEA6C" role="3clF45" />
+      <node concept="3clFbS" id="4XPt_HaE_RF" role="3clF47">
+        <node concept="3clFbH" id="4XPt_HaEMnL" role="3cqZAp" />
+        <node concept="3cpWs8" id="4XPt_HaEMys" role="3cqZAp">
+          <node concept="3cpWsn" id="4XPt_HaEMyv" role="3cpWs9">
+            <property role="TrG5h" value="localFile" />
+            <node concept="17QB3L" id="4XPt_HaEMyq" role="1tU5fm" />
+            <node concept="2OqwBi" id="4XPt_HaENkw" role="33vP2m">
+              <node concept="13iPFW" id="4XPt_HaEN39" role="2Oq$k0" />
+              <node concept="3TrcHB" id="4XPt_HaENDk" role="2OqNvi">
+                <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3cpWs8" id="4XPt_HaENKr" role="3cqZAp">
+          <node concept="3cpWsn" id="4XPt_HaENKs" role="3cpWs9">
+            <property role="TrG5h" value="obj" />
+            <node concept="3uibUv" id="4XPt_HaENKt" role="1tU5fm">
+              <ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
+            </node>
+            <node concept="BsUDl" id="4XPt_HaENKu" role="33vP2m">
+              <ref role="37wK5l" node="4XPt_HaECXY" resolve="convertLocationToObject" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbJ" id="4XPt_HaENTr" role="3cqZAp">
+          <node concept="3clFbS" id="4XPt_HaENTs" role="3clFbx">
+            <node concept="3cpWs8" id="4XPt_HaENTt" role="3cqZAp">
+              <node concept="3cpWsn" id="4XPt_HaENTu" role="3cpWs9">
+                <property role="TrG5h" value="modelRef" />
+                <node concept="3uibUv" id="4XPt_HaENTv" role="1tU5fm">
+                  <ref role="3uigEE" to="mhbf:~SModelReference" resolve="SModelReference" />
+                </node>
+                <node concept="1eOMI4" id="4XPt_HaENTw" role="33vP2m">
+                  <node concept="10QFUN" id="4XPt_HaENTx" role="1eOMHV">
+                    <node concept="3uibUv" id="4XPt_HaENTy" role="10QFUM">
+                      <ref role="3uigEE" to="mhbf:~SModelReference" resolve="SModelReference" />
+                    </node>
+                    <node concept="37vLTw" id="4XPt_HaENTz" role="10QFUP">
+                      <ref role="3cqZAo" node="4XPt_HaENKs" resolve="obj" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3cpWs8" id="4XPt_HaF1fY" role="3cqZAp">
+              <node concept="3cpWsn" id="4XPt_HaF1fZ" role="3cpWs9">
+                <property role="TrG5h" value="model" />
+                <node concept="3uibUv" id="4XPt_HaF1du" role="1tU5fm">
+                  <ref role="3uigEE" to="mhbf:~SModel" resolve="SModel" />
+                </node>
+                <node concept="2OqwBi" id="4XPt_HaF1g0" role="33vP2m">
+                  <node concept="37vLTw" id="4XPt_HaF1g1" role="2Oq$k0">
+                    <ref role="3cqZAo" node="4XPt_HaENTu" resolve="modelRef" />
+                  </node>
+                  <node concept="liA8E" id="4XPt_HaF1g2" role="2OqNvi">
+                    <ref role="37wK5l" to="mhbf:~SModelReference.resolve(org.jetbrains.mps.openapi.module.SRepository)" resolve="resolve" />
+                    <node concept="37vLTw" id="4XPt_HaF1g3" role="37wK5m">
+                      <ref role="3cqZAo" node="4XPt_HaEA7b" resolve="repository" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbF" id="4XPt_HaEOh0" role="3cqZAp">
+              <node concept="37vLTI" id="4XPt_HaEPEX" role="3clFbG">
+                <node concept="2OqwBi" id="4XPt_HaF4bq" role="37vLTx">
+                  <node concept="2OqwBi" id="4XPt_HaF3mi" role="2Oq$k0">
+                    <node concept="0kSF2" id="4XPt_HaF2sX" role="2Oq$k0">
+                      <node concept="3uibUv" id="4XPt_HaF2sZ" role="0kSFW">
+                        <ref role="3uigEE" to="ends:~FileBasedModelRoot" resolve="FileBasedModelRoot" />
+                      </node>
+                      <node concept="2OqwBi" id="4XPt_HaF1H$" role="0kSFX">
+                        <node concept="37vLTw" id="4XPt_HaF1g4" role="2Oq$k0">
+                          <ref role="3cqZAo" node="4XPt_HaF1fZ" resolve="model" />
+                        </node>
+                        <node concept="liA8E" id="4XPt_HaF1Tc" role="2OqNvi">
+                          <ref role="37wK5l" to="mhbf:~SModel.getModelRoot()" resolve="getModelRoot" />
+                        </node>
+                      </node>
+                    </node>
+                    <node concept="liA8E" id="4XPt_HaF3ED" role="2OqNvi">
+                      <ref role="37wK5l" to="ends:~FileBasedModelRoot.getContentDirectory()" resolve="getContentDirectory" />
+                    </node>
+                  </node>
+                  <node concept="liA8E" id="4XPt_HaF4oa" role="2OqNvi">
+                    <ref role="37wK5l" to="3ju5:~IFile.toRealPath()" resolve="toRealPath" />
+                  </node>
+                </node>
+                <node concept="37vLTw" id="4XPt_HaEOgY" role="37vLTJ">
+                  <ref role="3cqZAo" node="4XPt_HaEMyv" resolve="file" />
+                </node>
+              </node>
+            </node>
+          </node>
+          <node concept="2ZW3vV" id="4XPt_HaENTT" role="3clFbw">
+            <node concept="3uibUv" id="4XPt_HaENTU" role="2ZW6by">
+              <ref role="3uigEE" to="mhbf:~SModelReference" resolve="SModelReference" />
+            </node>
+            <node concept="37vLTw" id="4XPt_HaENTV" role="2ZW6bz">
+              <ref role="3cqZAo" node="4XPt_HaENKs" resolve="obj" />
+            </node>
+          </node>
+          <node concept="3eNFk2" id="4XPt_HaENTW" role="3eNLev">
+            <node concept="2ZW3vV" id="4XPt_HaENTX" role="3eO9$A">
+              <node concept="3uibUv" id="4XPt_HaENTY" role="2ZW6by">
+                <ref role="3uigEE" to="lui2:~SModuleReference" resolve="SModuleReference" />
+              </node>
+              <node concept="37vLTw" id="4XPt_HaENTZ" role="2ZW6bz">
+                <ref role="3cqZAo" node="4XPt_HaENKs" resolve="obj" />
+              </node>
+            </node>
+            <node concept="3clFbS" id="4XPt_HaENU0" role="3eOfB_">
+              <node concept="3cpWs8" id="4XPt_HaENU1" role="3cqZAp">
+                <node concept="3cpWsn" id="4XPt_HaENU2" role="3cpWs9">
+                  <property role="TrG5h" value="moduleRef" />
+                  <node concept="3uibUv" id="4XPt_HaENU3" role="1tU5fm">
+                    <ref role="3uigEE" to="lui2:~SModuleReference" resolve="SModuleReference" />
+                  </node>
+                  <node concept="1eOMI4" id="4XPt_HaENU4" role="33vP2m">
+                    <node concept="10QFUN" id="4XPt_HaENU5" role="1eOMHV">
+                      <node concept="3uibUv" id="4XPt_HaENU6" role="10QFUM">
+                        <ref role="3uigEE" to="lui2:~SModuleReference" resolve="SModuleReference" />
+                      </node>
+                      <node concept="37vLTw" id="4XPt_HaENU7" role="10QFUP">
+                        <ref role="3cqZAo" node="4XPt_HaENKs" resolve="obj" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3cpWs8" id="4XPt_HaFgpJ" role="3cqZAp">
+                <node concept="3cpWsn" id="4XPt_HaFgpK" role="3cpWs9">
+                  <property role="TrG5h" value="module" />
+                  <node concept="3uibUv" id="4XPt_HaFg82" role="1tU5fm">
+                    <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
+                  </node>
+                  <node concept="2OqwBi" id="4XPt_HaFgpL" role="33vP2m">
+                    <node concept="37vLTw" id="4XPt_HaFgpM" role="2Oq$k0">
+                      <ref role="3cqZAo" node="4XPt_HaENU2" resolve="moduleRef" />
+                    </node>
+                    <node concept="liA8E" id="4XPt_HaFgpN" role="2OqNvi">
+                      <ref role="37wK5l" to="lui2:~SModuleReference.resolve(org.jetbrains.mps.openapi.module.SRepository)" resolve="resolve" />
+                      <node concept="37vLTw" id="4XPt_HaFgpO" role="37wK5m">
+                        <ref role="3cqZAo" node="4XPt_HaEA7b" resolve="repository" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3clFbF" id="4XPt_HaFh31" role="3cqZAp">
+                <node concept="37vLTI" id="4XPt_HaFigF" role="3clFbG">
+                  <node concept="2OqwBi" id="4XPt_HaFk5L" role="37vLTx">
+                    <node concept="2OqwBi" id="4XPt_HaFjwF" role="2Oq$k0">
+                      <node concept="1eOMI4" id="4XPt_HaFiu7" role="2Oq$k0">
+                        <node concept="10QFUN" id="4XPt_HaFiu4" role="1eOMHV">
+                          <node concept="37vLTw" id="4XPt_HaFj3l" role="10QFUP">
+                            <ref role="3cqZAo" node="4XPt_HaFgpK" resolve="module" />
+                          </node>
+                          <node concept="3uibUv" id="4XPt_HaFiST" role="10QFUM">
+                            <ref role="3uigEE" to="z1c4:~AbstractModule" resolve="AbstractModule" />
+                          </node>
+                        </node>
+                      </node>
+                      <node concept="liA8E" id="4XPt_HaFjRX" role="2OqNvi">
+                        <ref role="37wK5l" to="z1c4:~AbstractModule.getModuleSourceDir()" resolve="getModuleSourceDir" />
+                      </node>
+                    </node>
+                    <node concept="liA8E" id="4XPt_HaFkl4" role="2OqNvi">
+                      <ref role="37wK5l" to="3ju5:~IFile.toRealPath()" resolve="toRealPath" />
+                    </node>
+                  </node>
+                  <node concept="37vLTw" id="4XPt_HaFh2Z" role="37vLTJ">
+                    <ref role="3cqZAo" node="4XPt_HaEMyv" resolve="localFile" />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="4XPt_HaEMuR" role="3cqZAp" />
+        <node concept="3clFbJ" id="4XPt_HaFlKV" role="3cqZAp">
+          <node concept="3clFbS" id="4XPt_HaFlKX" role="3clFbx">
+            <node concept="3cpWs6" id="4XPt_HaFmMW" role="3cqZAp" />
+          </node>
+          <node concept="3clFbC" id="4XPt_HaFmtB" role="3clFbw">
+            <node concept="10Nm6u" id="4XPt_HaFmtE" role="3uHU7w" />
+            <node concept="37vLTw" id="4XPt_HaFlQu" role="3uHU7B">
+              <ref role="3cqZAo" node="4XPt_HaEMyv" resolve="localFile" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="4XPt_HaFlBK" role="3cqZAp" />
+        <node concept="3J1_TO" id="4XPt_HaCr2T" role="3cqZAp">
+          <node concept="3uVAMA" id="4XPt_HaCr3c" role="1zxBo5">
+            <node concept="XOnhg" id="4XPt_HaCr3d" role="1zc67B">
+              <property role="TrG5h" value="io" />
+              <node concept="nSUau" id="4XPt_HaCr3e" role="1tU5fm">
+                <node concept="3uibUv" id="4XPt_HaCr3M" role="nSUat">
+                  <ref role="3uigEE" to="guwi:~IOException" resolve="IOException" />
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbS" id="4XPt_HaCr3f" role="1zc67A">
+              <node concept="RRSsy" id="4XPt_HaCr5H" role="3cqZAp">
+                <property role="RRSoG" value="gZ5fh_4/error" />
+                <node concept="3cpWs3" id="4XPt_HaCruz" role="RRSoy">
+                  <node concept="2OqwBi" id="4XPt_HaCFZ2" role="3uHU7w">
+                    <node concept="13iPFW" id="4XPt_HaECM3" role="2Oq$k0" />
+                    <node concept="3TrcHB" id="4XPt_HaCG9X" role="2OqNvi">
+                      <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                    </node>
+                  </node>
+                  <node concept="Xl_RD" id="4XPt_HaCr5J" role="3uHU7B">
+                    <property role="Xl_RC" value="Couldn't open " />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+          <node concept="3clFbS" id="4XPt_HaCr2U" role="1zxBo7">
+            <node concept="3cpWs8" id="4XPt_HaDmUN" role="3cqZAp">
+              <node concept="3cpWsn" id="4XPt_HaDmUO" role="3cpWs9">
+                <property role="TrG5h" value="file" />
+                <node concept="3uibUv" id="4XPt_HaDlNx" role="1tU5fm">
+                  <ref role="3uigEE" to="guwi:~File" resolve="File" />
+                </node>
+                <node concept="2ShNRf" id="4XPt_HaDmUP" role="33vP2m">
+                  <node concept="1pGfFk" id="4XPt_HaDmUQ" role="2ShVmc">
+                    <property role="373rjd" value="true" />
+                    <ref role="37wK5l" to="guwi:~File.&lt;init&gt;(java.lang.String)" resolve="File" />
+                    <node concept="37vLTw" id="4XPt_HaFkFL" role="37wK5m">
+                      <ref role="3cqZAo" node="4XPt_HaEMyv" resolve="localFile" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbJ" id="4XPt_HaDn5x" role="3cqZAp">
+              <node concept="3clFbS" id="4XPt_HaDn5z" role="3clFbx">
+                <node concept="3clFbF" id="4XPt_HaDnKW" role="3cqZAp">
+                  <node concept="37vLTI" id="4XPt_HaDo4s" role="3clFbG">
+                    <node concept="2OqwBi" id="4XPt_HaDo59" role="37vLTx">
+                      <node concept="37vLTw" id="4XPt_HaDo4I" role="2Oq$k0">
+                        <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
+                      </node>
+                      <node concept="liA8E" id="4XPt_HaDoql" role="2OqNvi">
+                        <ref role="37wK5l" to="guwi:~File.getParentFile()" resolve="getParentFile" />
+                      </node>
+                    </node>
+                    <node concept="37vLTw" id="4XPt_HaDnKU" role="37vLTJ">
+                      <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3fqX7Q" id="4XPt_HaDnJa" role="3clFbw">
+                <node concept="2OqwBi" id="4XPt_HaDnJc" role="3fr31v">
+                  <node concept="37vLTw" id="4XPt_HaDnJd" role="2Oq$k0">
+                    <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
+                  </node>
+                  <node concept="liA8E" id="4XPt_HaDnJe" role="2OqNvi">
+                    <ref role="37wK5l" to="guwi:~File.isDirectory()" resolve="isDirectory" />
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbF" id="4XPt_HaCGgF" role="3cqZAp">
+              <node concept="2OqwBi" id="4XPt_HaCGoE" role="3clFbG">
+                <node concept="2YIFZM" id="4XPt_HaCGhd" role="2Oq$k0">
+                  <ref role="37wK5l" to="z60i:~Desktop.getDesktop()" resolve="getDesktop" />
+                  <ref role="1Pybhc" to="z60i:~Desktop" resolve="Desktop" />
+                </node>
+                <node concept="liA8E" id="4XPt_HaCGwI" role="2OqNvi">
+                  <ref role="37wK5l" to="z60i:~Desktop.open(java.io.File)" resolve="open" />
+                  <node concept="37vLTw" id="4XPt_HaDmUU" role="37wK5m">
+                    <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="37vLTG" id="4XPt_HaEA7b" role="3clF46">
+        <property role="TrG5h" value="repository" />
+        <node concept="3uibUv" id="4XPt_HaEA7a" role="1tU5fm">
+          <ref role="3uigEE" to="lui2:~SRepository" resolve="SRepository" />
+        </node>
+      </node>
+    </node>
     <node concept="13hLZK" id="4Wm$DJ9cjhM" role="13h7CW">
       <node concept="3clFbS" id="4Wm$DJ9cjhN" role="2VODD2" />
     </node>
diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
index 0d16bcf8..6a47fdb9 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
@@ -192,9 +192,6 @@
       </concept>
       <concept id="4836112446988635817" name="jetbrains.mps.baseLanguage.structure.UndefinedType" flags="in" index="2jxLKc" />
       <concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
-      <concept id="8118189177080264853" name="jetbrains.mps.baseLanguage.structure.AlternativeType" flags="ig" index="nSUau">
-        <child id="8118189177080264854" name="alternative" index="nSUat" />
-      </concept>
       <concept id="1465982738277781862" name="jetbrains.mps.baseLanguage.structure.PlaceholderMember" flags="nn" index="2tJIrI" />
       <concept id="1188207840427" name="jetbrains.mps.baseLanguage.structure.AnnotationInstance" flags="nn" index="2AHcQZ">
         <reference id="1188208074048" name="annotation" index="2AI5Lk" />
@@ -216,7 +213,6 @@
       <concept id="1070475926800" name="jetbrains.mps.baseLanguage.structure.StringLiteral" flags="nn" index="Xl_RD">
         <property id="1070475926801" name="value" index="Xl_RC" />
       </concept>
-      <concept id="4952749571008284462" name="jetbrains.mps.baseLanguage.structure.CatchVariable" flags="ng" index="XOnhg" />
       <concept id="1182160077978" name="jetbrains.mps.baseLanguage.structure.AnonymousClassCreator" flags="nn" index="YeOm9">
         <child id="1182160096073" name="cls" index="YeSDq" />
       </concept>
@@ -302,18 +298,10 @@
         <child id="1081773367579" name="rightExpression" index="3uHU7w" />
         <child id="1081773367580" name="leftExpression" index="3uHU7B" />
       </concept>
-      <concept id="3093926081414150598" name="jetbrains.mps.baseLanguage.structure.MultipleCatchClause" flags="ng" index="3uVAMA">
-        <child id="8276990574895933173" name="catchBody" index="1zc67A" />
-        <child id="8276990574895933172" name="throwable" index="1zc67B" />
-      </concept>
       <concept id="1073239437375" name="jetbrains.mps.baseLanguage.structure.NotEqualsExpression" flags="nn" index="3y3z36" />
       <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
         <child id="1178549979242" name="visibility" index="1B3o_S" />
       </concept>
-      <concept id="5351203823916750322" name="jetbrains.mps.baseLanguage.structure.TryUniversalStatement" flags="nn" index="3J1_TO">
-        <child id="8276990574886367510" name="catchClause" index="1zxBo5" />
-        <child id="8276990574886367508" name="body" index="1zxBo7" />
-      </concept>
       <concept id="1163668896201" name="jetbrains.mps.baseLanguage.structure.TernaryOperatorExpression" flags="nn" index="3K4zz7">
         <child id="1163668914799" name="condition" index="3K4Cdx" />
         <child id="1163668922816" name="ifTrue" index="3K4E3e" />
@@ -341,12 +329,6 @@
         <child id="1199569916463" name="body" index="1bW5cS" />
       </concept>
     </language>
-    <language id="760a0a8c-eabb-4521-8bfd-65db761a9ba3" name="jetbrains.mps.baseLanguage.logging">
-      <concept id="2034914114981261497" name="jetbrains.mps.baseLanguage.logging.structure.LogLowLevelStatement" flags="ng" index="RRSsy">
-        <property id="2034914114981261751" name="severity" index="RRSoG" />
-        <child id="2034914114981261753" name="message" index="RRSoy" />
-      </concept>
-    </language>
     <language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
       <concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
       <concept id="1138757581985" name="jetbrains.mps.lang.smodel.structure.Link_SetNewChildOperation" flags="nn" index="zfrQC" />
@@ -1831,94 +1813,15 @@
       <property role="1hAc7j" value="1FSxSwWqMNJ/click_action_id" />
       <node concept="1hAIg9" id="4XPt_HaCr2b" role="1hA7z_">
         <node concept="3clFbS" id="4XPt_HaCr2c" role="2VODD2">
-          <node concept="3J1_TO" id="4XPt_HaCr2T" role="3cqZAp">
-            <node concept="3uVAMA" id="4XPt_HaCr3c" role="1zxBo5">
-              <node concept="XOnhg" id="4XPt_HaCr3d" role="1zc67B">
-                <property role="TrG5h" value="io" />
-                <node concept="nSUau" id="4XPt_HaCr3e" role="1tU5fm">
-                  <node concept="3uibUv" id="4XPt_HaCr3M" role="nSUat">
-                    <ref role="3uigEE" to="guwi:~IOException" resolve="IOException" />
-                  </node>
-                </node>
-              </node>
-              <node concept="3clFbS" id="4XPt_HaCr3f" role="1zc67A">
-                <node concept="RRSsy" id="4XPt_HaCr5H" role="3cqZAp">
-                  <property role="RRSoG" value="gZ5fh_4/error" />
-                  <node concept="3cpWs3" id="4XPt_HaCruz" role="RRSoy">
-                    <node concept="2OqwBi" id="4XPt_HaCFZ2" role="3uHU7w">
-                      <node concept="0IXxy" id="4XPt_HaCFLf" role="2Oq$k0" />
-                      <node concept="3TrcHB" id="4XPt_HaCG9X" role="2OqNvi">
-                        <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
-                      </node>
-                    </node>
-                    <node concept="Xl_RD" id="4XPt_HaCr5J" role="3uHU7B">
-                      <property role="Xl_RC" value="Couldn't open " />
-                    </node>
-                  </node>
-                </node>
-              </node>
-            </node>
-            <node concept="3clFbS" id="4XPt_HaCr2U" role="1zxBo7">
-              <node concept="3cpWs8" id="4XPt_HaDmUN" role="3cqZAp">
-                <node concept="3cpWsn" id="4XPt_HaDmUO" role="3cpWs9">
-                  <property role="TrG5h" value="file" />
-                  <node concept="3uibUv" id="4XPt_HaDlNx" role="1tU5fm">
-                    <ref role="3uigEE" to="guwi:~File" resolve="File" />
-                  </node>
-                  <node concept="2ShNRf" id="4XPt_HaDmUP" role="33vP2m">
-                    <node concept="1pGfFk" id="4XPt_HaDmUQ" role="2ShVmc">
-                      <property role="373rjd" value="true" />
-                      <ref role="37wK5l" to="guwi:~File.&lt;init&gt;(java.lang.String)" resolve="File" />
-                      <node concept="2OqwBi" id="4XPt_HaDmUR" role="37wK5m">
-                        <node concept="0IXxy" id="4XPt_HaDmUS" role="2Oq$k0" />
-                        <node concept="3TrcHB" id="4XPt_HaDmUT" role="2OqNvi">
-                          <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
-                        </node>
-                      </node>
-                    </node>
-                  </node>
-                </node>
-              </node>
-              <node concept="3clFbJ" id="4XPt_HaDn5x" role="3cqZAp">
-                <node concept="3clFbS" id="4XPt_HaDn5z" role="3clFbx">
-                  <node concept="3clFbF" id="4XPt_HaDnKW" role="3cqZAp">
-                    <node concept="37vLTI" id="4XPt_HaDo4s" role="3clFbG">
-                      <node concept="2OqwBi" id="4XPt_HaDo59" role="37vLTx">
-                        <node concept="37vLTw" id="4XPt_HaDo4I" role="2Oq$k0">
-                          <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
-                        </node>
-                        <node concept="liA8E" id="4XPt_HaDoql" role="2OqNvi">
-                          <ref role="37wK5l" to="guwi:~File.getParentFile()" resolve="getParentFile" />
-                        </node>
-                      </node>
-                      <node concept="37vLTw" id="4XPt_HaDnKU" role="37vLTJ">
-                        <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
-                      </node>
-                    </node>
-                  </node>
-                </node>
-                <node concept="3fqX7Q" id="4XPt_HaDnJa" role="3clFbw">
-                  <node concept="2OqwBi" id="4XPt_HaDnJc" role="3fr31v">
-                    <node concept="37vLTw" id="4XPt_HaDnJd" role="2Oq$k0">
-                      <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
-                    </node>
-                    <node concept="liA8E" id="4XPt_HaDnJe" role="2OqNvi">
-                      <ref role="37wK5l" to="guwi:~File.isDirectory()" resolve="isDirectory" />
-                    </node>
-                  </node>
-                </node>
-              </node>
-              <node concept="3clFbF" id="4XPt_HaCGgF" role="3cqZAp">
-                <node concept="2OqwBi" id="4XPt_HaCGoE" role="3clFbG">
-                  <node concept="2YIFZM" id="4XPt_HaCGhd" role="2Oq$k0">
-                    <ref role="37wK5l" to="z60i:~Desktop.getDesktop()" resolve="getDesktop" />
-                    <ref role="1Pybhc" to="z60i:~Desktop" resolve="Desktop" />
-                  </node>
-                  <node concept="liA8E" id="4XPt_HaCGwI" role="2OqNvi">
-                    <ref role="37wK5l" to="z60i:~Desktop.open(java.io.File)" resolve="open" />
-                    <node concept="37vLTw" id="4XPt_HaDmUU" role="37wK5m">
-                      <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
-                    </node>
+          <node concept="3clFbF" id="4XPt_HaEBgK" role="3cqZAp">
+            <node concept="2OqwBi" id="4XPt_HaEBqw" role="3clFbG">
+              <node concept="0IXxy" id="4XPt_HaEBgJ" role="2Oq$k0" />
+              <node concept="2qgKlT" id="4XPt_HaEB_o" role="2OqNvi">
+                <ref role="37wK5l" to="b659:4XPt_HaE_RC" resolve="openLocation" />
+                <node concept="2OqwBi" id="4XPt_HaEBHf" role="37wK5m">
+                  <node concept="1Q80Hx" id="4XPt_HaEB_S" role="2Oq$k0" />
+                  <node concept="liA8E" id="4XPt_HaEBP1" role="2OqNvi">
+                    <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
                   </node>
                 </node>
               </node>
@@ -1929,33 +1832,12 @@
       <node concept="jK8Ss" id="4XPt_HaCxr4" role="jK8aL">
         <node concept="3clFbS" id="4XPt_HaCxr5" role="2VODD2">
           <node concept="3clFbF" id="4XPt_HaCrxs" role="3cqZAp">
-            <node concept="1Wc70l" id="4XPt_HaDWtU" role="3clFbG">
-              <node concept="3y3z36" id="4XPt_HaDX_6" role="3uHU7B">
-                <node concept="10Nm6u" id="4XPt_HaDX_b" role="3uHU7w" />
-                <node concept="2OqwBi" id="4XPt_HaDWRX" role="3uHU7B">
-                  <node concept="0IXxy" id="4XPt_HaDWCj" role="2Oq$k0" />
-                  <node concept="3TrcHB" id="4XPt_HaDX4O" role="2OqNvi">
-                    <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
-                  </node>
-                </node>
-              </node>
-              <node concept="3fqX7Q" id="4XPt_HaCF_O" role="3uHU7w">
-                <node concept="1LFfDK" id="4XPt_HaCF_Q" role="3fr31v">
-                  <node concept="3cmrfG" id="4XPt_HaCF_R" role="1LF_Uc">
-                    <property role="3cmrfH" value="1" />
-                  </node>
-                  <node concept="2OqwBi" id="4XPt_HaCF_S" role="1LFl5Q">
-                    <node concept="0IXxy" id="4XPt_HaCF_T" role="2Oq$k0" />
-                    <node concept="2qgKlT" id="4XPt_HaCF_U" role="2OqNvi">
-                      <ref role="37wK5l" to="b659:4XPt_HauH1N" resolve="formatLocation" />
-                      <node concept="2OqwBi" id="4XPt_HaCF_V" role="37wK5m">
-                        <node concept="1Q80Hx" id="4XPt_HaCF_W" role="2Oq$k0" />
-                        <node concept="liA8E" id="4XPt_HaCF_X" role="2OqNvi">
-                          <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
-                        </node>
-                      </node>
-                    </node>
-                  </node>
+            <node concept="3y3z36" id="4XPt_HaDX_6" role="3clFbG">
+              <node concept="10Nm6u" id="4XPt_HaDX_b" role="3uHU7w" />
+              <node concept="2OqwBi" id="4XPt_HaDWRX" role="3uHU7B">
+                <node concept="0IXxy" id="4XPt_HaDWCj" role="2Oq$k0" />
+                <node concept="3TrcHB" id="4XPt_HaDX4O" role="2OqNvi">
+                  <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
                 </node>
               </node>
             </node>

From cc41cea4f14c8331bfa63dc742eefdf34451a7e2 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Mon, 23 Sep 2024 09:40:53 +0200
Subject: [PATCH 13/42] force save all + update build script

---
 .../org.mpsqa.build._080_lint_build.mps       |  3 ++
 .../org.mpsqa.lint.generic.behavior.mps       | 44 ++++++++++---------
 ...qa.lint.generic.linters_library.models.mps |  7 +--
 3 files changed, 28 insertions(+), 26 deletions(-)

diff --git a/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._080_lint_build.mps b/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._080_lint_build.mps
index 9e7ff829..eec60830 100644
--- a/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._080_lint_build.mps
+++ b/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._080_lint_build.mps
@@ -242,6 +242,9 @@
       <node concept="m$_yC" id="4Wm$DJ9mpUP" role="m$_yJ">
         <ref role="m$_y1" to="ffeo:4k71ibbLe59" resolve="com.intellij.modules.mps" />
       </node>
+      <node concept="m$_yC" id="4XPt_HaGDDW" role="m$_yJ">
+        <ref role="m$_y1" to="ffeo:ymnOULATpW" resolve="jetbrains.mps.testing" />
+      </node>
       <node concept="m$_yC" id="30a3800NyCh" role="m$_yJ">
         <ref role="m$_y1" to="ffeo:5lGJ4Taqfsl" resolve="jetbrains.mps.ide.modelchecker" />
       </node>
diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
index 50ea576f..079d9287 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
@@ -833,29 +833,31 @@
                     </node>
                     <node concept="2pJxcG" id="2I_DQhwFnn" role="2pJxcM">
                       <ref role="2pJxcJ" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
-                      <node concept="3K4zz7" id="2I_DQhAlv6" role="28ntcv">
-                        <node concept="2OqwBi" id="2I_DQhAJB$" role="3K4E3e">
-                          <node concept="2OqwBi" id="2I_DQhAzue" role="2Oq$k0">
-                            <node concept="2GrUjf" id="2I_DQhAry5" role="2Oq$k0">
-                              <ref role="2Gs0qQ" node="6gY6GEDwgRS" resolve="r" />
+                      <node concept="WxPPo" id="2czVPH2a5Cu" role="28ntcv">
+                        <node concept="3K4zz7" id="2I_DQhAlv6" role="WxPPp">
+                          <node concept="2OqwBi" id="2I_DQhAJB$" role="3K4E3e">
+                            <node concept="2OqwBi" id="2I_DQhAzue" role="2Oq$k0">
+                              <node concept="2GrUjf" id="2I_DQhAry5" role="2Oq$k0">
+                                <ref role="2Gs0qQ" node="6gY6GEDwgRS" resolve="r" />
+                              </node>
+                              <node concept="2sxana" id="2I_DQhADyx" role="2OqNvi">
+                                <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
+                              </node>
                             </node>
-                            <node concept="2sxana" id="2I_DQhADyx" role="2OqNvi">
-                              <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
+                            <node concept="liA8E" id="2I_DQhANOC" role="2OqNvi">
+                              <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
                             </node>
                           </node>
-                          <node concept="liA8E" id="2I_DQhANOC" role="2OqNvi">
-                            <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
-                          </node>
-                        </node>
-                        <node concept="10Nm6u" id="2I_DQhAT24" role="3K4GZi" />
-                        <node concept="3y3z36" id="2I_DQhA8DW" role="3K4Cdx">
-                          <node concept="10Nm6u" id="2I_DQhAdkH" role="3uHU7w" />
-                          <node concept="2OqwBi" id="2I_DQhwRI_" role="3uHU7B">
-                            <node concept="2GrUjf" id="2I_DQhwKmO" role="2Oq$k0">
-                              <ref role="2Gs0qQ" node="6gY6GEDwgRS" resolve="r" />
-                            </node>
-                            <node concept="2sxana" id="2I_DQhwVEl" role="2OqNvi">
-                              <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
+                          <node concept="10Nm6u" id="2I_DQhAT24" role="3K4GZi" />
+                          <node concept="3y3z36" id="2I_DQhA8DW" role="3K4Cdx">
+                            <node concept="10Nm6u" id="2I_DQhAdkH" role="3uHU7w" />
+                            <node concept="2OqwBi" id="2I_DQhwRI_" role="3uHU7B">
+                              <node concept="2GrUjf" id="2I_DQhwKmO" role="2Oq$k0">
+                                <ref role="2Gs0qQ" node="6gY6GEDwgRS" resolve="r" />
+                              </node>
+                              <node concept="2sxana" id="2I_DQhwVEl" role="2OqNvi">
+                                <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
+                              </node>
                             </node>
                           </node>
                         </node>
@@ -2296,7 +2298,7 @@
                   </node>
                 </node>
                 <node concept="37vLTw" id="4XPt_HaEOgY" role="37vLTJ">
-                  <ref role="3cqZAo" node="4XPt_HaEMyv" resolve="file" />
+                  <ref role="3cqZAo" node="4XPt_HaEMyv" resolve="localFile" />
                 </node>
               </node>
             </node>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.models.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.models.mps
index cc9e77a1..3c74fb1e 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.models.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.models.mps
@@ -61,9 +61,6 @@
       <concept id="1188208481402" name="jetbrains.mps.baseLanguage.structure.HasAnnotation" flags="ng" index="2AJDlI">
         <child id="1188208488637" name="annotation" index="2AJF6D" />
       </concept>
-      <concept id="2820489544401957797" name="jetbrains.mps.baseLanguage.structure.DefaultClassCreator" flags="nn" index="HV5vD">
-        <reference id="2820489544401957798" name="classifier" index="HV5vE" />
-      </concept>
       <concept id="1154032098014" name="jetbrains.mps.baseLanguage.structure.AbstractLoopStatement" flags="nn" index="2LF5Ji">
         <child id="1154032183016" name="body" index="2LFqv$" />
       </concept>
@@ -3080,8 +3077,8 @@
                   <ref role="37wK5l" to="wsw7:6nj_ILmBNrL" resolve="ModelCheckerBuilder" />
                   <node concept="2OqwBi" id="34euvBSCHBI" role="37wK5m">
                     <node concept="2ShNRf" id="6nj_ILmBUsN" role="2Oq$k0">
-                      <node concept="HV5vD" id="107f053Tj_z" role="2ShVmc">
-                        <ref role="HV5vE" to="wsw7:7X3$Ctw7ww1" resolve="ModelCheckerBuilder.ModelsExtractorImpl" />
+                      <node concept="1pGfFk" id="4XPt_HaEvW0" role="2ShVmc">
+                        <ref role="37wK5l" to="wsw7:6pnunaLnyyn" resolve="ModelCheckerBuilder.ModelsExtractorImpl" />
                       </node>
                     </node>
                     <node concept="liA8E" id="34euvBSCHOa" role="2OqNvi">

From 2cb736e8346c7c72367e1048d434f9a5fee02579 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Mon, 23 Sep 2024 10:49:51 +0200
Subject: [PATCH 14/42] mpsqa.lint: fix error reporting of existing linters

---
 .../models/org.mpsqa.lint.generic.editor.mps  |   4 +-
 ...int.generic.linters_library.filesystem.mps |  41 +---
 ...psqa.lint.generic.linters_library.meta.mps | 112 ++++------
 ...a.lint.generic.linters_library.modules.mps | 145 +++++++-----
 ...sqa.lint.generic.linters_library.nodes.mps | 209 +-----------------
 ...andbox._010_smoke_user_defined_linters.mps | 108 +++++----
 .../org.mpsqa.lint.generic.sandbox.msd        |   1 +
 ...s_lang.linters_library.behavior_aspect.mps |  59 +----
 ...mps_lang.linters_library.build_scripts.mps |  23 +-
 ...ang.linters_library.performance_editor.mps | 121 ++++------
 ...linters_library.performance_typesystem.mps |  28 ++-
 ...lang.linters_library.performance_utils.mps |  81 ++++---
 ..._lang.linters_library.structure_aspect.mps |  20 +-
 ...qa.lint.mps_lang.linters_library.tests.mps | 111 +++++++---
 ...lang.linters_library.typesystem_aspect.mps |  58 +----
 15 files changed, 396 insertions(+), 725 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
index 6a47fdb9..1b6a639f 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
@@ -1192,8 +1192,8 @@
                           </node>
                         </node>
                       </node>
-                      <node concept="liA8E" id="4XPt_Hap_$A" role="2OqNvi">
-                        <ref role="37wK5l" to="mhbf:~SNode.getName()" resolve="getName" />
+                      <node concept="liA8E" id="4XPt_HaQvt0" role="2OqNvi">
+                        <ref role="37wK5l" to="mhbf:~SNode.getPresentation()" resolve="getPresentation" />
                       </node>
                     </node>
                   </node>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.filesystem.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.filesystem.mps
index 2c752306..76035fb7 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.filesystem.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.filesystem.mps
@@ -167,9 +167,6 @@
       </concept>
       <concept id="1146644602865" name="jetbrains.mps.baseLanguage.structure.PublicVisibility" flags="nn" index="3Tm1VV" />
       <concept id="1080120340718" name="jetbrains.mps.baseLanguage.structure.AndExpression" flags="nn" index="1Wc70l" />
-      <concept id="1200397529627" name="jetbrains.mps.baseLanguage.structure.CharConstant" flags="nn" index="1Xhbcc">
-        <property id="1200397540847" name="charConstant" index="1XhdNS" />
-      </concept>
       <concept id="1170345865475" name="jetbrains.mps.baseLanguage.structure.AnonymousClass" flags="ig" index="1Y3b0j">
         <reference id="1170346070688" name="classifier" index="1Y3XeK" />
         <child id="1201186121363" name="typeParameter" index="2Ghqu4" />
@@ -389,42 +386,8 @@
                               <property role="Xl_RC" value="KB" />
                             </node>
                             <node concept="3cpWs3" id="4mUq39YDSLs" role="3uHU7B">
-                              <node concept="3cpWs3" id="4mUq39YDSLt" role="3uHU7B">
-                                <node concept="3cpWs3" id="4mUq39YDSLu" role="3uHU7B">
-                                  <node concept="Xl_RD" id="4mUq39YDSLv" role="3uHU7B">
-                                    <property role="Xl_RC" value="File '" />
-                                  </node>
-                                  <node concept="2OqwBi" id="4mUq39YDSLw" role="3uHU7w">
-                                    <node concept="2OqwBi" id="4mUq39YDSLx" role="2Oq$k0">
-                                      <node concept="2OqwBi" id="4mUq39YDSLy" role="2Oq$k0">
-                                        <node concept="liA8E" id="4mUq39YDSLz" role="2OqNvi">
-                                          <ref role="37wK5l" to="eoo2:~Path.relativize(java.nio.file.Path)" resolve="relativize" />
-                                          <node concept="2GrUjf" id="4mUq39YE9xp" role="37wK5m">
-                                            <ref role="2Gs0qQ" node="4mUq39YE21w" resolve="file" />
-                                          </node>
-                                        </node>
-                                        <node concept="37vLTw" id="4mUq39YDSL_" role="2Oq$k0">
-                                          <ref role="3cqZAo" node="4mUq39YDTMh" resolve="pathOfDirectoryContainingProject" />
-                                        </node>
-                                      </node>
-                                      <node concept="liA8E" id="4mUq39YDSLA" role="2OqNvi">
-                                        <ref role="37wK5l" to="eoo2:~Path.toString()" resolve="toString" />
-                                      </node>
-                                    </node>
-                                    <node concept="liA8E" id="4mUq39YDSLB" role="2OqNvi">
-                                      <ref role="37wK5l" to="wyt6:~String.replace(char,char)" resolve="replace" />
-                                      <node concept="1Xhbcc" id="4mUq39YDSLC" role="37wK5m">
-                                        <property role="1XhdNS" value="\\" />
-                                      </node>
-                                      <node concept="1Xhbcc" id="4mUq39YDSLD" role="37wK5m">
-                                        <property role="1XhdNS" value="/" />
-                                      </node>
-                                    </node>
-                                  </node>
-                                </node>
-                                <node concept="Xl_RD" id="4mUq39YDSLE" role="3uHU7w">
-                                  <property role="Xl_RC" value="' has a size bigger than " />
-                                </node>
+                              <node concept="Xl_RD" id="4XPt_HaVOG0" role="3uHU7B">
+                                <property role="Xl_RC" value="File has a size bigger than " />
                               </node>
                               <node concept="2j1LYi" id="4mUq39YDT75" role="3uHU7w">
                                 <ref role="2j1LYj" node="pFzydTBLXy" resolve="sizeInKb" />
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.meta.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.meta.mps
index 1a40461b..dc140b15 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.meta.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.meta.mps
@@ -14,6 +14,7 @@
     <import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" />
     <import index="z1c3" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.project(MPS.Core/)" />
     <import index="a1af" ref="r:839ac015-7de1-49f3-ac8f-8d7c6d47259d(org.mpsqa.lint.generic.structure)" />
+    <import index="zn9m" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.util(MPS.IDEA/)" />
   </imports>
   <registry>
     <language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
@@ -38,6 +39,9 @@
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+        <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
+      </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
         <reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
       </concept>
@@ -52,7 +56,6 @@
       <concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
         <child id="1068581517665" name="statement" index="3cqZAp" />
       </concept>
-      <concept id="1068581242875" name="jetbrains.mps.baseLanguage.structure.PlusExpression" flags="nn" index="3cpWs3" />
       <concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
         <child id="1068581517676" name="expression" index="3cqZAk" />
       </concept>
@@ -62,6 +65,12 @@
       <concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
       <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
+        <child id="1068499141038" name="actualArgument" index="37wK5m" />
+      </concept>
+      <concept id="1212685548494" name="jetbrains.mps.baseLanguage.structure.ClassCreator" flags="nn" index="1pGfFk" />
+      <concept id="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
+        <reference id="1107535924139" name="classifier" index="3uigEE" />
+        <child id="1109201940907" name="parameter" index="11_B2D" />
       </concept>
       <concept id="1081773326031" name="jetbrains.mps.baseLanguage.structure.BinaryOperation" flags="nn" index="3uHJSO">
         <child id="1081773367579" name="rightExpression" index="3uHU7w" />
@@ -120,7 +129,6 @@
       <concept id="1145383075378" name="jetbrains.mps.lang.smodel.structure.SNodeListType" flags="in" index="2I9FWS">
         <reference id="1145383142433" name="elementConcept" index="2I9WkF" />
       </concept>
-      <concept id="1212008292747" name="jetbrains.mps.lang.smodel.structure.Model_GetLongNameOperation" flags="nn" index="LkI2h" />
       <concept id="1171323947159" name="jetbrains.mps.lang.smodel.structure.Model_NodesOperation" flags="nn" index="2SmgA7">
         <child id="1758937410080001570" name="conceptArgument" index="1dBWTz" />
       </concept>
@@ -205,11 +213,19 @@
           <node concept="3cpWsn" id="4lfwJVEz_XA" role="3cpWs9">
             <property role="TrG5h" value="res" />
             <node concept="_YKpA" id="4lfwJVEz_XH" role="1tU5fm">
-              <node concept="17QB3L" id="4lfwJVEz_XV" role="_ZDj9" />
+              <node concept="3uibUv" id="4XPt_HaAEXb" role="_ZDj9">
+                <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                <node concept="17QB3L" id="4XPt_HaAJ$c" role="11_B2D" />
+                <node concept="3Tqbb2" id="4XPt_HaGVkB" role="11_B2D" />
+              </node>
             </node>
             <node concept="2ShNRf" id="4lfwJVEz_XI" role="33vP2m">
               <node concept="Tc6Ow" id="4lfwJVEz_XW" role="2ShVmc">
-                <node concept="17QB3L" id="4lfwJVEz_Y9" role="HW$YZ" />
+                <node concept="3uibUv" id="4XPt_HaGVSd" role="HW$YZ">
+                  <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                  <node concept="17QB3L" id="4XPt_HaGVSe" role="11_B2D" />
+                  <node concept="3Tqbb2" id="4XPt_HaGWmS" role="11_B2D" />
+                </node>
               </node>
             </node>
           </node>
@@ -364,37 +380,15 @@
                   <ref role="3cqZAo" node="4lfwJVEz_XA" resolve="res" />
                 </node>
                 <node concept="TSZUe" id="4lfwJVEz_YP" role="2OqNvi">
-                  <node concept="3cpWs3" id="4lfwJVEz_YT" role="25WWJ7">
-                    <node concept="Xl_RD" id="4lfwJVEz_YV" role="3uHU7w">
-                      <property role="Xl_RC" value="' is not re-used" />
-                    </node>
-                    <node concept="3cpWs3" id="4lfwJVEz_YW" role="3uHU7B">
-                      <node concept="3cpWs3" id="4lfwJVEz_YZ" role="3uHU7B">
-                        <node concept="3cpWs3" id="4lfwJVEz_Z3" role="3uHU7B">
-                          <node concept="Xl_RD" id="4lfwJVEz_Z5" role="3uHU7B">
-                            <property role="Xl_RC" value="Script '" />
-                          </node>
-                          <node concept="2OqwBi" id="4lfwJVEz_Z7" role="3uHU7w">
-                            <node concept="2GrUjf" id="4lfwJVEz_Z9" role="2Oq$k0">
-                              <ref role="2Gs0qQ" node="4lfwJVEz_Y6" resolve="cs" />
-                            </node>
-                            <node concept="3TrcHB" id="4lfwJVE_jzb" role="2OqNvi">
-                              <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                            </node>
-                          </node>
-                        </node>
-                        <node concept="Xl_RD" id="4lfwJVEz_Z4" role="3uHU7w">
-                          <property role="Xl_RC" value="' from model '" />
-                        </node>
+                  <node concept="2ShNRf" id="4XPt_HaGX0H" role="25WWJ7">
+                    <node concept="1pGfFk" id="4XPt_HaGXEy" role="2ShVmc">
+                      <property role="373rjd" value="true" />
+                      <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                      <node concept="Xl_RD" id="4XPt_HaH1m6" role="37wK5m">
+                        <property role="Xl_RC" value="The Script is not re-used" />
                       </node>
-                      <node concept="2OqwBi" id="4lfwJVE_laT" role="3uHU7w">
-                        <node concept="2OqwBi" id="4lfwJVE_kEp" role="2Oq$k0">
-                          <node concept="2GrUjf" id="4lfwJVE_kny" role="2Oq$k0">
-                            <ref role="2Gs0qQ" node="4lfwJVEz_Y6" resolve="cs" />
-                          </node>
-                          <node concept="I4A8Y" id="4lfwJVE_kTK" role="2OqNvi" />
-                        </node>
-                        <node concept="LkI2h" id="4lfwJVE_lqX" role="2OqNvi" />
+                      <node concept="2GrUjf" id="4XPt_HaH3ic" role="37wK5m">
+                        <ref role="2Gs0qQ" node="4lfwJVEz_Y6" resolve="cs" />
                       </node>
                     </node>
                   </node>
@@ -571,11 +565,19 @@
           <node concept="3cpWsn" id="652KpqR3Kkb" role="3cpWs9">
             <property role="TrG5h" value="res" />
             <node concept="_YKpA" id="652KpqR3Kkc" role="1tU5fm">
-              <node concept="17QB3L" id="652KpqR3Kkd" role="_ZDj9" />
+              <node concept="3uibUv" id="4XPt_HaHj$M" role="_ZDj9">
+                <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                <node concept="17QB3L" id="4XPt_HaHj$N" role="11_B2D" />
+                <node concept="3Tqbb2" id="4XPt_HaHj$O" role="11_B2D" />
+              </node>
             </node>
             <node concept="2ShNRf" id="652KpqR3Kke" role="33vP2m">
               <node concept="Tc6Ow" id="652KpqR3Kkf" role="2ShVmc">
-                <node concept="17QB3L" id="652KpqR3Kkg" role="HW$YZ" />
+                <node concept="3uibUv" id="4XPt_HaHk85" role="HW$YZ">
+                  <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                  <node concept="17QB3L" id="4XPt_HaHk86" role="11_B2D" />
+                  <node concept="3Tqbb2" id="4XPt_HaHk87" role="11_B2D" />
+                </node>
               </node>
             </node>
           </node>
@@ -658,37 +660,15 @@
                   <ref role="3cqZAo" node="652KpqR3Kkb" resolve="res" />
                 </node>
                 <node concept="TSZUe" id="652KpqR3Kln" role="2OqNvi">
-                  <node concept="3cpWs3" id="652KpqR3Klo" role="25WWJ7">
-                    <node concept="Xl_RD" id="652KpqR3Klp" role="3uHU7w">
-                      <property role="Xl_RC" value="' is skipped" />
-                    </node>
-                    <node concept="3cpWs3" id="652KpqR3Klq" role="3uHU7B">
-                      <node concept="3cpWs3" id="652KpqR3Klr" role="3uHU7B">
-                        <node concept="3cpWs3" id="652KpqR3Kls" role="3uHU7B">
-                          <node concept="Xl_RD" id="652KpqR3Klt" role="3uHU7B">
-                            <property role="Xl_RC" value="Evaluation of the script '" />
-                          </node>
-                          <node concept="2OqwBi" id="652KpqR3Klu" role="3uHU7w">
-                            <node concept="2GrUjf" id="652KpqR3Klv" role="2Oq$k0">
-                              <ref role="2Gs0qQ" node="652KpqR3Klh" resolve="script" />
-                            </node>
-                            <node concept="3TrcHB" id="652KpqR3Klw" role="2OqNvi">
-                              <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                            </node>
-                          </node>
-                        </node>
-                        <node concept="Xl_RD" id="652KpqR3Klx" role="3uHU7w">
-                          <property role="Xl_RC" value="' from model '" />
-                        </node>
+                  <node concept="2ShNRf" id="4XPt_HaHkQ4" role="25WWJ7">
+                    <node concept="1pGfFk" id="4XPt_HaHlaO" role="2ShVmc">
+                      <property role="373rjd" value="true" />
+                      <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                      <node concept="Xl_RD" id="4XPt_HaHoYo" role="37wK5m">
+                        <property role="Xl_RC" value="Evaluation of the script is skipped" />
                       </node>
-                      <node concept="2OqwBi" id="652KpqR3Kly" role="3uHU7w">
-                        <node concept="2OqwBi" id="652KpqR3Klz" role="2Oq$k0">
-                          <node concept="2GrUjf" id="652KpqR3Kl$" role="2Oq$k0">
-                            <ref role="2Gs0qQ" node="652KpqR3Klh" resolve="script" />
-                          </node>
-                          <node concept="I4A8Y" id="652KpqR3Kl_" role="2OqNvi" />
-                        </node>
-                        <node concept="LkI2h" id="652KpqR3KlA" role="2OqNvi" />
+                      <node concept="2GrUjf" id="4XPt_HaHn26" role="37wK5m">
+                        <ref role="2Gs0qQ" node="652KpqR3Klh" resolve="script" />
                       </node>
                     </node>
                   </node>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.modules.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.modules.mps
index 69277fec..08d1af90 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.modules.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.modules.mps
@@ -34,6 +34,7 @@
     <import index="ovw5" ref="r:c20826af-2893-4d29-904e-89e5161f5716(org.mpsqa.lint.generic.linters_library.quickfixes.typesystem)" />
     <import index="dush" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.persistence(MPS.OpenAPI/)" />
     <import index="mhfm" ref="3f233e7f-b8a6-46d2-a57f-795d56775243/java:org.jetbrains.annotations(Annotations/)" />
+    <import index="zn9m" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.util(MPS.IDEA/)" />
   </imports>
   <registry>
     <language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
@@ -1113,11 +1114,23 @@
           <node concept="3cpWsn" id="3$9W3co2XpN" role="3cpWs9">
             <property role="TrG5h" value="res" />
             <node concept="_YKpA" id="3$9W3co2XpO" role="1tU5fm">
-              <node concept="17QB3L" id="3$9W3co2XpP" role="_ZDj9" />
+              <node concept="3uibUv" id="4XPt_HaJtRV" role="_ZDj9">
+                <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                <node concept="17QB3L" id="4XPt_HaJx2g" role="11_B2D" />
+                <node concept="3uibUv" id="4XPt_HaJyHF" role="11_B2D">
+                  <ref role="3uigEE" to="guwi:~File" resolve="File" />
+                </node>
+              </node>
             </node>
             <node concept="2ShNRf" id="3$9W3co2XpQ" role="33vP2m">
               <node concept="Tc6Ow" id="3$9W3co2XpR" role="2ShVmc">
-                <node concept="17QB3L" id="3$9W3co2XpS" role="HW$YZ" />
+                <node concept="3uibUv" id="4XPt_HaJzzC" role="HW$YZ">
+                  <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                  <node concept="17QB3L" id="4XPt_HaJzzD" role="11_B2D" />
+                  <node concept="3uibUv" id="4XPt_HaJzzE" role="11_B2D">
+                    <ref role="3uigEE" to="guwi:~File" resolve="File" />
+                  </node>
+                </node>
               </node>
             </node>
           </node>
@@ -1177,9 +1190,16 @@
                             <ref role="3cqZAo" node="3$9W3co2XpN" resolve="res" />
                           </node>
                           <node concept="TSZUe" id="6EiPrTQlhMO" role="2OqNvi">
-                            <node concept="vsK6v" id="6EiPrTQlebW" role="25WWJ7">
-                              <node concept="37vLTw" id="6EiPrTQljH4" role="vsfCu">
-                                <ref role="3cqZAo" node="3$9W3co6X7n" resolve="ioe" />
+                            <node concept="2ShNRf" id="4XPt_HaJ_b6" role="25WWJ7">
+                              <node concept="1pGfFk" id="4XPt_HaJ_Z0" role="2ShVmc">
+                                <property role="373rjd" value="true" />
+                                <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                                <node concept="vsK6v" id="6EiPrTQlebW" role="37wK5m">
+                                  <node concept="37vLTw" id="6EiPrTQljH4" role="vsfCu">
+                                    <ref role="3cqZAo" node="3$9W3co6X7n" resolve="ioe" />
+                                  </node>
+                                </node>
+                                <node concept="10Nm6u" id="4XPt_HaJBch" role="37wK5m" />
                               </node>
                             </node>
                           </node>
@@ -1256,17 +1276,12 @@
                                             <ref role="3cqZAo" node="3$9W3co3U3M" resolve="msdFiles" />
                                           </node>
                                           <node concept="TSZUe" id="3$9W3co6PWq" role="2OqNvi">
-                                            <node concept="2OqwBi" id="3$9W3co6PWr" role="25WWJ7">
-                                              <node concept="2OqwBi" id="3$9W3co6PWs" role="2Oq$k0">
-                                                <node concept="37vLTw" id="3$9W3co6PWt" role="2Oq$k0">
-                                                  <ref role="3cqZAo" node="3$9W3co6PW9" resolve="file" />
-                                                </node>
-                                                <node concept="liA8E" id="3$9W3co6PWu" role="2OqNvi">
-                                                  <ref role="37wK5l" to="eoo2:~Path.toFile()" resolve="toFile" />
-                                                </node>
+                                            <node concept="2OqwBi" id="3$9W3co6PWs" role="25WWJ7">
+                                              <node concept="37vLTw" id="3$9W3co6PWt" role="2Oq$k0">
+                                                <ref role="3cqZAo" node="3$9W3co6PW9" resolve="file" />
                                               </node>
-                                              <node concept="liA8E" id="3$9W3co6PWv" role="2OqNvi">
-                                                <ref role="37wK5l" to="guwi:~File.getName()" resolve="getName" />
+                                              <node concept="liA8E" id="4XPt_HaJrH0" role="2OqNvi">
+                                                <ref role="37wK5l" to="eoo2:~Path.toString()" resolve="toString" />
                                               </node>
                                             </node>
                                           </node>
@@ -1387,7 +1402,7 @@
                               <ref role="3cqZAo" node="3$9W3co506w" resolve="descriptorFile" />
                             </node>
                             <node concept="liA8E" id="3$9W3co5$SS" role="2OqNvi">
-                              <ref role="37wK5l" to="3ju5:~IFile.getName()" resolve="getName" />
+                              <ref role="37wK5l" to="3ju5:~IFile.toRealPath()" resolve="toRealPath" />
                             </node>
                           </node>
                         </node>
@@ -1452,18 +1467,33 @@
                   <ref role="3cqZAo" node="3$9W3co2XpN" resolve="res" />
                 </node>
                 <node concept="TSZUe" id="3$9W3co5IH_" role="2OqNvi">
-                  <node concept="3cpWs3" id="3$9W3co5IHB" role="25WWJ7">
-                    <node concept="3cpWs3" id="3$9W3co5IHC" role="3uHU7B">
-                      <node concept="Xl_RD" id="3$9W3co5IHD" role="3uHU7B">
-                        <property role="Xl_RC" value="Module with file '" />
+                  <node concept="2ShNRf" id="4XPt_HaJCnv" role="25WWJ7">
+                    <node concept="1pGfFk" id="4XPt_HaJDgs" role="2ShVmc">
+                      <property role="373rjd" value="true" />
+                      <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                      <node concept="3cpWs3" id="3$9W3co5IHB" role="37wK5m">
+                        <node concept="3cpWs3" id="3$9W3co5IHC" role="3uHU7B">
+                          <node concept="Xl_RD" id="3$9W3co5IHD" role="3uHU7B">
+                            <property role="Xl_RC" value="Module with file '" />
+                          </node>
+                          <node concept="2GrUjf" id="3$9W3co5KNi" role="3uHU7w">
+                            <ref role="2Gs0qQ" node="3$9W3co5Baw" resolve="fileNotInProject" />
+                          </node>
+                        </node>
+                        <node concept="Xl_RD" id="3$9W3co5IHH" role="3uHU7w">
+                          <property role="Xl_RC" value="' is located in project directory but it is not part of the project" />
+                        </node>
                       </node>
-                      <node concept="2GrUjf" id="3$9W3co5KNi" role="3uHU7w">
-                        <ref role="2Gs0qQ" node="3$9W3co5Baw" resolve="fileNotInProject" />
+                      <node concept="2ShNRf" id="4XPt_HaJHqF" role="37wK5m">
+                        <node concept="1pGfFk" id="4XPt_HaJItk" role="2ShVmc">
+                          <property role="373rjd" value="true" />
+                          <ref role="37wK5l" to="guwi:~File.&lt;init&gt;(java.lang.String)" resolve="File" />
+                          <node concept="2GrUjf" id="4XPt_HaJJ5O" role="37wK5m">
+                            <ref role="2Gs0qQ" node="3$9W3co5Baw" resolve="fileNotInProject" />
+                          </node>
+                        </node>
                       </node>
                     </node>
-                    <node concept="Xl_RD" id="3$9W3co5IHH" role="3uHU7w">
-                      <property role="Xl_RC" value="' is located in project directory but it is not part of the project" />
-                    </node>
                   </node>
                 </node>
               </node>
@@ -2517,7 +2547,7 @@
                   <node concept="3cpWs3" id="7XOuq5ggEQm" role="3uHU7B">
                     <node concept="3cpWs3" id="7XOuq5ggEcZ" role="3uHU7B">
                       <node concept="Xl_RD" id="7XOuq5ggDqX" role="3uHU7B">
-                        <property role="Xl_RC" value="too many cyclic dependencies with length " />
+                        <property role="Xl_RC" value="Too many cyclic dependencies with length " />
                       </node>
                       <node concept="2j1LYi" id="7XOuq5ggEtO" role="3uHU7w">
                         <ref role="2j1LYj" node="47tbZooQUks" resolve="cycleLength" />
@@ -3053,21 +3083,8 @@
                           <property role="Xl_RC" value="' (some plugins might not be loaded)" />
                         </node>
                         <node concept="3cpWs3" id="6WYDruH6tDs" role="3uHU7B">
-                          <node concept="3cpWs3" id="6WYDruH6rp6" role="3uHU7B">
-                            <node concept="3cpWs3" id="6WYDruH6peB" role="3uHU7B">
-                              <node concept="Xl_RD" id="6WYDruH6oWM" role="3uHU7B">
-                                <property role="Xl_RC" value="Module '" />
-                              </node>
-                              <node concept="2OqwBi" id="6WYDruH6pvY" role="3uHU7w">
-                                <node concept="2vlQn3" id="2zdrQh74hCT" role="2Oq$k0" />
-                                <node concept="liA8E" id="6WYDruH6qBp" role="2OqNvi">
-                                  <ref role="37wK5l" to="lui2:~SModule.getModuleName()" resolve="getModuleName" />
-                                </node>
-                              </node>
-                            </node>
-                            <node concept="Xl_RD" id="6WYDruH6rpo" role="3uHU7w">
-                              <property role="Xl_RC" value="' uses unknown language '" />
-                            </node>
+                          <node concept="Xl_RD" id="4XPt_HaKh4T" role="3uHU7B">
+                            <property role="Xl_RC" value="Module uses unknown language '" />
                           </node>
                           <node concept="2GrUjf" id="6WYDruH6uij" role="3uHU7w">
                             <ref role="2Gs0qQ" node="52u1lglBbro" resolve="lan" />
@@ -3149,21 +3166,8 @@
                                 <property role="Xl_RC" value=" of the language " />
                               </node>
                               <node concept="3cpWs3" id="52u1lglDrWy" role="3uHU7B">
-                                <node concept="3cpWs3" id="52u1lglB0vr" role="3uHU7B">
-                                  <node concept="3cpWs3" id="52u1lglB0vs" role="3uHU7B">
-                                    <node concept="Xl_RD" id="52u1lglB0vt" role="3uHU7B">
-                                      <property role="Xl_RC" value="Module '" />
-                                    </node>
-                                    <node concept="2OqwBi" id="52u1lglB0vu" role="3uHU7w">
-                                      <node concept="2vlQn3" id="2zdrQh74hZO" role="2Oq$k0" />
-                                      <node concept="liA8E" id="52u1lglB0vw" role="2OqNvi">
-                                        <ref role="37wK5l" to="lui2:~SModule.getModuleName()" resolve="getModuleName" />
-                                      </node>
-                                    </node>
-                                  </node>
-                                  <node concept="Xl_RD" id="52u1lglB0vx" role="3uHU7w">
-                                    <property role="Xl_RC" value="' needs to be migrated to version " />
-                                  </node>
+                                <node concept="Xl_RD" id="4XPt_HaKixf" role="3uHU7B">
+                                  <property role="Xl_RC" value="Module needs to be migrated to version " />
                                 </node>
                                 <node concept="37vLTw" id="52u1lglDshq" role="3uHU7w">
                                   <ref role="3cqZAo" node="RtEeVJVV5h" resolve="languageVersion" />
@@ -5666,11 +5670,23 @@
           <node concept="3cpWsn" id="7CQ_Wpsik_b" role="3cpWs9">
             <property role="TrG5h" value="res" />
             <node concept="_YKpA" id="7CQ_Wpsik_c" role="1tU5fm">
-              <node concept="17QB3L" id="7CQ_Wpsik_d" role="_ZDj9" />
+              <node concept="3uibUv" id="4XPt_HaAEXb" role="_ZDj9">
+                <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                <node concept="17QB3L" id="4XPt_HaAJ$c" role="11_B2D" />
+                <node concept="3uibUv" id="4XPt_HaAMo2" role="11_B2D">
+                  <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
+                </node>
+              </node>
             </node>
             <node concept="2ShNRf" id="7CQ_Wpsik_e" role="33vP2m">
               <node concept="Tc6Ow" id="7CQ_Wpsik_f" role="2ShVmc">
-                <node concept="17QB3L" id="7CQ_Wpsik_g" role="HW$YZ" />
+                <node concept="3uibUv" id="4XPt_HaHPU8" role="HW$YZ">
+                  <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                  <node concept="17QB3L" id="4XPt_HaHPU9" role="11_B2D" />
+                  <node concept="3uibUv" id="4XPt_HaHPUa" role="11_B2D">
+                    <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
+                  </node>
+                </node>
               </node>
             </node>
           </node>
@@ -5756,8 +5772,17 @@
                               <ref role="3cqZAo" node="7CQ_Wpsik_b" resolve="res" />
                             </node>
                             <node concept="TSZUe" id="7CQ_WpsiQGk" role="2OqNvi">
-                              <node concept="Xl_RD" id="63CQ8uYFTXw" role="25WWJ7">
-                                <property role="Xl_RC" value="Language is not part of any devkit" />
+                              <node concept="2ShNRf" id="4XPt_HaHSLC" role="25WWJ7">
+                                <node concept="1pGfFk" id="4XPt_HaHT8G" role="2ShVmc">
+                                  <property role="373rjd" value="true" />
+                                  <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                                  <node concept="Xl_RD" id="63CQ8uYFTXw" role="37wK5m">
+                                    <property role="Xl_RC" value="Language is not part of any devkit" />
+                                  </node>
+                                  <node concept="2GrUjf" id="4XPt_HaHTpf" role="37wK5m">
+                                    <ref role="2Gs0qQ" node="7CQ_WpsiHw1" resolve="module" />
+                                  </node>
+                                </node>
                               </node>
                             </node>
                           </node>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.nodes.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.nodes.mps
index 75bb68a5..9b301540 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.nodes.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.nodes.mps
@@ -182,18 +182,12 @@
       <concept id="7453996997717780434" name="jetbrains.mps.lang.smodel.structure.Node_GetSConceptOperation" flags="nn" index="2yIwOk" />
       <concept id="8758390115029295477" name="jetbrains.mps.lang.smodel.structure.SReferenceType" flags="in" index="2z4iKi" />
       <concept id="8758390115028452779" name="jetbrains.mps.lang.smodel.structure.Node_GetReferencesOperation" flags="nn" index="2z74zc" />
-      <concept id="2396822768958367367" name="jetbrains.mps.lang.smodel.structure.AbstractTypeCastExpression" flags="nn" index="$5XWr">
-        <child id="6733348108486823193" name="leftExpression" index="1m5AlR" />
-        <child id="3906496115198199033" name="conceptArgument" index="3oSUPX" />
-      </concept>
       <concept id="1143226024141" name="jetbrains.mps.lang.smodel.structure.SModelType" flags="in" index="H_c77" />
       <concept id="1143234257716" name="jetbrains.mps.lang.smodel.structure.Node_GetModelOperation" flags="nn" index="I4A8Y" />
       <concept id="1145404486709" name="jetbrains.mps.lang.smodel.structure.SemanticDowncastExpression" flags="nn" index="2JrnkZ">
         <child id="1145404616321" name="leftExpression" index="2JrQYb" />
       </concept>
-      <concept id="1212008292747" name="jetbrains.mps.lang.smodel.structure.Model_GetLongNameOperation" flags="nn" index="LkI2h" />
       <concept id="1171305280644" name="jetbrains.mps.lang.smodel.structure.Node_GetDescendantsOperation" flags="nn" index="2Rf3mk" />
-      <concept id="1171310072040" name="jetbrains.mps.lang.smodel.structure.Node_GetContainingRootOperation" flags="nn" index="2Rxl7S" />
       <concept id="1171315804604" name="jetbrains.mps.lang.smodel.structure.Model_RootsOperation" flags="nn" index="2RRcyG">
         <child id="6750920497477046361" name="conceptArgument" index="3MHsoP" />
       </concept>
@@ -213,7 +207,6 @@
         <child id="1207343664468" name="conceptArgument" index="ri$Ld" />
       </concept>
       <concept id="5708036808576088033" name="jetbrains.mps.lang.smodel.structure.Reference_GetResolveInfo" flags="nn" index="1FfNbt" />
-      <concept id="1140137987495" name="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression" flags="nn" index="1PxgMI" />
       <concept id="1138055754698" name="jetbrains.mps.lang.smodel.structure.SNodeType" flags="in" index="3Tqbb2" />
       <concept id="1138056022639" name="jetbrains.mps.lang.smodel.structure.SPropertyAccess" flags="nn" index="3TrcHB">
         <reference id="1138056395725" name="property" index="3TsBF5" />
@@ -2116,53 +2109,6 @@
                                   <node concept="3clFbS" id="73he6VT0zyN" role="2LFqv$">
                                     <node concept="3clFbJ" id="73he6VT0_zd" role="3cqZAp">
                                       <node concept="3clFbS" id="73he6VT0_zf" role="3clFbx">
-                                        <node concept="3cpWs8" id="73he6VT0Mnp" role="3cqZAp">
-                                          <node concept="3cpWsn" id="73he6VT0Mns" role="3cpWs9">
-                                            <property role="TrG5h" value="msg" />
-                                            <node concept="17QB3L" id="73he6VT0Mnn" role="1tU5fm" />
-                                            <node concept="3K4zz7" id="73he6VT0MYd" role="33vP2m">
-                                              <node concept="Xl_RD" id="73he6VT0P3r" role="3K4GZi">
-                                                <property role="Xl_RC" value="" />
-                                              </node>
-                                              <node concept="2OqwBi" id="73he6VT0MBQ" role="3K4Cdx">
-                                                <node concept="2OqwBi" id="73he6VT0MBR" role="2Oq$k0">
-                                                  <node concept="2GrUjf" id="73he6VT0MBS" role="2Oq$k0">
-                                                    <ref role="2Gs0qQ" node="73he6VT0y4g" resolve="crtNode" />
-                                                  </node>
-                                                  <node concept="2Rxl7S" id="73he6VT0MBT" role="2OqNvi" />
-                                                </node>
-                                                <node concept="1mIQ4w" id="73he6VT0MBU" role="2OqNvi">
-                                                  <node concept="chp4Y" id="73he6VT0MBV" role="cj9EA">
-                                                    <ref role="cht4Q" to="tpck:h0TrEE$" resolve="INamedConcept" />
-                                                  </node>
-                                                </node>
-                                              </node>
-                                              <node concept="1eOMI4" id="73he6VT0Omo" role="3K4E3e">
-                                                <node concept="3cpWs3" id="73he6VT0O_o" role="1eOMHV">
-                                                  <node concept="Xl_RD" id="73he6VT0ONQ" role="3uHU7B">
-                                                    <property role="Xl_RC" value=" from root node named " />
-                                                  </node>
-                                                  <node concept="2OqwBi" id="73he6VT0NnW" role="3uHU7w">
-                                                    <node concept="1PxgMI" id="73he6VT0NnX" role="2Oq$k0">
-                                                      <node concept="chp4Y" id="73he6VT0NnY" role="3oSUPX">
-                                                        <ref role="cht4Q" to="tpck:h0TrEE$" resolve="INamedConcept" />
-                                                      </node>
-                                                      <node concept="2OqwBi" id="73he6VT0NnZ" role="1m5AlR">
-                                                        <node concept="2GrUjf" id="73he6VT0No0" role="2Oq$k0">
-                                                          <ref role="2Gs0qQ" node="73he6VT0y4g" resolve="crtNode" />
-                                                        </node>
-                                                        <node concept="2Rxl7S" id="73he6VT0No1" role="2OqNvi" />
-                                                      </node>
-                                                    </node>
-                                                    <node concept="3TrcHB" id="73he6VT0No2" role="2OqNvi">
-                                                      <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                                                    </node>
-                                                  </node>
-                                                </node>
-                                              </node>
-                                            </node>
-                                          </node>
-                                        </node>
                                         <node concept="3clFbF" id="73he6VT0o6Z" role="3cqZAp">
                                           <node concept="2OqwBi" id="73he6VT0o70" role="3clFbG">
                                             <node concept="37vLTw" id="73he6VT0o71" role="2Oq$k0">
@@ -2172,51 +2118,18 @@
                                               <node concept="2ShNRf" id="73he6VT0o73" role="25WWJ7">
                                                 <node concept="1pGfFk" id="73he6VT0o74" role="2ShVmc">
                                                   <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
-                                                  <node concept="3cpWs3" id="73he6VT0o78" role="37wK5m">
-                                                    <node concept="3cpWs3" id="73he6VT0o79" role="3uHU7B">
-                                                      <node concept="2OqwBi" id="73he6VT0o7a" role="3uHU7w">
-                                                        <node concept="2GrUjf" id="73he6VT0o7c" role="2Oq$k0">
-                                                          <ref role="2Gs0qQ" node="73he6VT0o6G" resolve="module" />
-                                                        </node>
-                                                        <node concept="liA8E" id="73he6VT0DwC" role="2OqNvi">
-                                                          <ref role="37wK5l" to="lui2:~SModule.getModuleName()" resolve="getModuleName" />
-                                                        </node>
-                                                      </node>
-                                                      <node concept="3cpWs3" id="73he6VT0o7f" role="3uHU7B">
-                                                        <node concept="3cpWs3" id="73he6VT0o7g" role="3uHU7B">
-                                                          <node concept="3cpWs3" id="73he6VT0o7h" role="3uHU7B">
-                                                            <node concept="Xl_RD" id="73he6VT0o7n" role="3uHU7w">
-                                                              <property role="Xl_RC" value=" from model '" />
-                                                            </node>
-                                                            <node concept="3cpWs3" id="73he6VT0R67" role="3uHU7B">
-                                                              <node concept="37vLTw" id="73he6VT0RnD" role="3uHU7w">
-                                                                <ref role="3cqZAo" node="73he6VT0Mns" resolve="msg" />
-                                                              </node>
-                                                              <node concept="Xl_RD" id="73he6VT0o7j" role="3uHU7B">
-                                                                <property role="Xl_RC" value="broken references of node" />
-                                                              </node>
-                                                            </node>
-                                                          </node>
-                                                          <node concept="2OqwBi" id="73he6VT0o7o" role="3uHU7w">
-                                                            <node concept="37vLTw" id="73he6VT0CK9" role="2Oq$k0">
-                                                              <ref role="3cqZAo" node="73he6VT0yLw" resolve="m" />
-                                                            </node>
-                                                            <node concept="LkI2h" id="73he6VT0o7q" role="2OqNvi" />
-                                                          </node>
-                                                        </node>
-                                                        <node concept="Xl_RD" id="73he6VT0o7r" role="3uHU7w">
-                                                          <property role="Xl_RC" value="' and module '" />
-                                                        </node>
-                                                      </node>
-                                                    </node>
-                                                    <node concept="Xl_RD" id="73he6VT0o7s" role="3uHU7w">
-                                                      <property role="Xl_RC" value="'." />
-                                                    </node>
-                                                  </node>
                                                   <node concept="17QB3L" id="73he6VT0o7u" role="1pMfVU" />
                                                   <node concept="3Tqbb2" id="73he6VT0o7v" role="1pMfVU" />
-                                                  <node concept="2GrUjf" id="73he6VT0o7w" role="37wK5m">
-                                                    <ref role="2Gs0qQ" node="73he6VT0y4g" resolve="crtNode" />
+                                                  <node concept="Xl_RD" id="73he6VT0o7j" role="37wK5m">
+                                                    <property role="Xl_RC" value="The reference cannot be resolved" />
+                                                  </node>
+                                                  <node concept="2OqwBi" id="4XPt_HaQOzF" role="37wK5m">
+                                                    <node concept="2GrUjf" id="4XPt_HaQOle" role="2Oq$k0">
+                                                      <ref role="2Gs0qQ" node="73he6VT0zyL" resolve="crtRef" />
+                                                    </node>
+                                                    <node concept="liA8E" id="4XPt_HaQOT1" role="2OqNvi">
+                                                      <ref role="37wK5l" to="mhbf:~SReference.getSourceNode()" resolve="getSourceNode" />
+                                                    </node>
                                                   </node>
                                                 </node>
                                               </node>
@@ -2712,104 +2625,6 @@
                         </node>
                       </node>
                       <node concept="3clFbS" id="7e2zrEq$zxi" role="3clFbx">
-                        <node concept="3cpWs8" id="7e2zrEq$BwH" role="3cqZAp">
-                          <node concept="3cpWsn" id="7e2zrEq$BwK" role="3cpWs9">
-                            <property role="TrG5h" value="referencingRoot" />
-                            <node concept="3Tqbb2" id="7e2zrEq$BwF" role="1tU5fm" />
-                            <node concept="2OqwBi" id="7e2zrEq$BPA" role="33vP2m">
-                              <node concept="2GrUjf" id="7e2zrEq$BJX" role="2Oq$k0">
-                                <ref role="2Gs0qQ" node="7e2zrEq$4iH" resolve="n" />
-                              </node>
-                              <node concept="2Rxl7S" id="7e2zrEq$Cj1" role="2OqNvi" />
-                            </node>
-                          </node>
-                        </node>
-                        <node concept="3cpWs8" id="7e2zrEq$4iO" role="3cqZAp">
-                          <node concept="3cpWsn" id="7e2zrEq$4iP" role="3cpWs9">
-                            <property role="TrG5h" value="rootNodeName" />
-                            <node concept="17QB3L" id="7e2zrEq$4iQ" role="1tU5fm" />
-                            <node concept="3K4zz7" id="7e2zrEq$4iR" role="33vP2m">
-                              <node concept="2OqwBi" id="7e2zrEq$4iS" role="3K4E3e">
-                                <node concept="1PxgMI" id="7e2zrEq$4iT" role="2Oq$k0">
-                                  <node concept="chp4Y" id="7e2zrEq$4iU" role="3oSUPX">
-                                    <ref role="cht4Q" to="tpck:h0TrEE$" resolve="INamedConcept" />
-                                  </node>
-                                  <node concept="37vLTw" id="7e2zrEq$CRv" role="1m5AlR">
-                                    <ref role="3cqZAo" node="7e2zrEq$BwK" resolve="referencingRoot" />
-                                  </node>
-                                </node>
-                                <node concept="3TrcHB" id="7e2zrEq$4iW" role="2OqNvi">
-                                  <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                                </node>
-                              </node>
-                              <node concept="2OqwBi" id="7e2zrEq$4iX" role="3K4GZi">
-                                <node concept="2OqwBi" id="7e2zrEq$4iY" role="2Oq$k0">
-                                  <node concept="37vLTw" id="7e2zrEq$D0B" role="2Oq$k0">
-                                    <ref role="3cqZAo" node="7e2zrEq$BwK" resolve="referencingRoot" />
-                                  </node>
-                                  <node concept="2yIwOk" id="7e2zrEq$4j0" role="2OqNvi" />
-                                </node>
-                                <node concept="liA8E" id="7e2zrEq$4j1" role="2OqNvi">
-                                  <ref role="37wK5l" to="c17a:~SAbstractConcept.getName()" resolve="getName" />
-                                </node>
-                              </node>
-                              <node concept="2OqwBi" id="7e2zrEq$4j2" role="3K4Cdx">
-                                <node concept="1mIQ4w" id="7e2zrEq$4j4" role="2OqNvi">
-                                  <node concept="chp4Y" id="7e2zrEq$4j5" role="cj9EA">
-                                    <ref role="cht4Q" to="tpck:h0TrEE$" resolve="INamedConcept" />
-                                  </node>
-                                </node>
-                                <node concept="37vLTw" id="7e2zrEq$Csx" role="2Oq$k0">
-                                  <ref role="3cqZAo" node="7e2zrEq$BwK" resolve="referencingRoot" />
-                                </node>
-                              </node>
-                            </node>
-                          </node>
-                        </node>
-                        <node concept="3cpWs8" id="7e2zrEq$4j6" role="3cqZAp">
-                          <node concept="3cpWsn" id="7e2zrEq$4j7" role="3cpWs9">
-                            <property role="TrG5h" value="msg" />
-                            <node concept="17QB3L" id="7e2zrEq$4j8" role="1tU5fm" />
-                            <node concept="3cpWs3" id="7e2zrEq$4j9" role="33vP2m">
-                              <node concept="3cpWs3" id="7e2zrEq$4ja" role="3uHU7B">
-                                <node concept="3cpWs3" id="7e2zrEq$4jb" role="3uHU7B">
-                                  <node concept="3cpWs3" id="7e2zrEq$4jc" role="3uHU7B">
-                                    <node concept="37vLTw" id="7e2zrEq$4jd" role="3uHU7w">
-                                      <ref role="3cqZAo" node="7e2zrEq$4iP" resolve="rootNodeName" />
-                                    </node>
-                                    <node concept="Xl_RD" id="7e2zrEq$4je" role="3uHU7B">
-                                      <property role="Xl_RC" value="Node from root node '" />
-                                    </node>
-                                  </node>
-                                  <node concept="Xl_RD" id="7e2zrEq$4jf" role="3uHU7w">
-                                    <property role="Xl_RC" value="' from model '" />
-                                  </node>
-                                </node>
-                                <node concept="2OqwBi" id="7e2zrEq$4jg" role="3uHU7w">
-                                  <node concept="2OqwBi" id="7e2zrEq$4jh" role="2Oq$k0">
-                                    <node concept="2JrnkZ" id="7e2zrEq$4ji" role="2Oq$k0">
-                                      <node concept="2OqwBi" id="7e2zrEq$Em5" role="2JrQYb">
-                                        <node concept="37vLTw" id="7e2zrEq$Da6" role="2Oq$k0">
-                                          <ref role="3cqZAo" node="7e2zrEq$BwK" resolve="referencingRoot" />
-                                        </node>
-                                        <node concept="I4A8Y" id="7e2zrEq$FlV" role="2OqNvi" />
-                                      </node>
-                                    </node>
-                                    <node concept="liA8E" id="7e2zrEq$4jk" role="2OqNvi">
-                                      <ref role="37wK5l" to="mhbf:~SModel.getName()" resolve="getName" />
-                                    </node>
-                                  </node>
-                                  <node concept="liA8E" id="7e2zrEq$4jl" role="2OqNvi">
-                                    <ref role="37wK5l" to="mhbf:~SModelName.getValue()" resolve="getValue" />
-                                  </node>
-                                </node>
-                              </node>
-                              <node concept="Xl_RD" id="7e2zrEq$4jm" role="3uHU7w">
-                                <property role="Xl_RC" value="' references commented out code" />
-                              </node>
-                            </node>
-                          </node>
-                        </node>
                         <node concept="3clFbF" id="7e2zrEq$4jn" role="3cqZAp">
                           <node concept="2OqwBi" id="7e2zrEq$4jo" role="3clFbG">
                             <node concept="37vLTw" id="7e2zrEq$4jp" role="2Oq$k0">
@@ -2819,8 +2634,8 @@
                               <node concept="2ShNRf" id="7e2zrEq$4jr" role="25WWJ7">
                                 <node concept="1pGfFk" id="7e2zrEq$4js" role="2ShVmc">
                                   <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
-                                  <node concept="37vLTw" id="7e2zrEq$4jt" role="37wK5m">
-                                    <ref role="3cqZAo" node="7e2zrEq$4j7" resolve="msg" />
+                                  <node concept="Xl_RD" id="4XPt_HaMjFd" role="37wK5m">
+                                    <property role="Xl_RC" value="The node references commented out code" />
                                   </node>
                                   <node concept="2GrUjf" id="7e2zrEq$4ju" role="37wK5m">
                                     <ref role="2Gs0qQ" node="7e2zrEq$4iH" resolve="n" />
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.generic.sandbox._010_smoke_user_defined_linters.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.generic.sandbox._010_smoke_user_defined_linters.mps
index 60115e7c..e2dda947 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.generic.sandbox._010_smoke_user_defined_linters.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.generic.sandbox._010_smoke_user_defined_linters.mps
@@ -21,6 +21,7 @@
     <import index="eoo2" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.nio.file(JDK/)" />
     <import index="1ctc" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util.stream(JDK/)" />
     <import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" />
+    <import index="zn9m" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.util(MPS.IDEA/)" />
   </imports>
   <registry>
     <language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
@@ -53,6 +54,7 @@
         <child id="1081256993305" name="classType" index="2ZW6by" />
         <child id="1081256993304" name="leftExpression" index="2ZW6bz" />
       </concept>
+      <concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
       <concept id="1070534370425" name="jetbrains.mps.baseLanguage.structure.IntegerType" flags="in" index="10Oyi0" />
       <concept id="1070534934090" name="jetbrains.mps.baseLanguage.structure.CastExpression" flags="nn" index="10QFUN">
         <child id="1070534934091" name="type" index="10QFUM" />
@@ -124,9 +126,6 @@
         <child id="8276990574886367510" name="catchClause" index="1zxBo5" />
         <child id="8276990574886367508" name="body" index="1zxBo7" />
       </concept>
-      <concept id="1200397529627" name="jetbrains.mps.baseLanguage.structure.CharConstant" flags="nn" index="1Xhbcc">
-        <property id="1200397540847" name="charConstant" index="1XhdNS" />
-      </concept>
     </language>
     <language id="40ab19e9-751a-4433-b645-0e65160e58a0" name="org.mpsqa.lint.generic">
       <concept id="7741759128795038157" name="org.mpsqa.lint.generic.structure.CheckableScriptParameter" flags="ng" index="2j1K4_">
@@ -510,11 +509,23 @@
           <node concept="3cpWsn" id="4aEqBbbsVTY" role="3cpWs9">
             <property role="TrG5h" value="res" />
             <node concept="_YKpA" id="4aEqBbbsVU2" role="1tU5fm">
-              <node concept="17QB3L" id="4aEqBbbsVU5" role="_ZDj9" />
+              <node concept="3uibUv" id="4XPt_HaAEXb" role="_ZDj9">
+                <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                <node concept="17QB3L" id="4XPt_HaAJ$c" role="11_B2D" />
+                <node concept="3uibUv" id="4XPt_HaAMo2" role="11_B2D">
+                  <ref role="3uigEE" to="guwi:~File" resolve="File" />
+                </node>
+              </node>
             </node>
             <node concept="2ShNRf" id="4aEqBbbsVU3" role="33vP2m">
               <node concept="Tc6Ow" id="4aEqBbbsVU6" role="2ShVmc">
-                <node concept="17QB3L" id="4aEqBbbsVUa" role="HW$YZ" />
+                <node concept="3uibUv" id="4XPt_HaR73d" role="HW$YZ">
+                  <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                  <node concept="17QB3L" id="4XPt_HaR73e" role="11_B2D" />
+                  <node concept="3uibUv" id="4XPt_HaR73f" role="11_B2D">
+                    <ref role="3uigEE" to="guwi:~File" resolve="File" />
+                  </node>
+                </node>
               </node>
             </node>
           </node>
@@ -571,9 +582,16 @@
                     <ref role="3cqZAo" node="4aEqBbbsVTY" resolve="res" />
                   </node>
                   <node concept="TSZUe" id="6EiPrTQlBs_" role="2OqNvi">
-                    <node concept="vsK6v" id="6EiPrTQlBYI" role="25WWJ7">
-                      <node concept="37vLTw" id="6EiPrTQlCx5" role="vsfCu">
-                        <ref role="3cqZAo" node="6HKgezSv$LV" resolve="ioe" />
+                    <node concept="2ShNRf" id="4XPt_HaRiRa" role="25WWJ7">
+                      <node concept="1pGfFk" id="4XPt_HaRjGr" role="2ShVmc">
+                        <property role="373rjd" value="true" />
+                        <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                        <node concept="vsK6v" id="6EiPrTQlBYI" role="37wK5m">
+                          <node concept="37vLTw" id="6EiPrTQlCx5" role="vsfCu">
+                            <ref role="3cqZAo" node="6HKgezSv$LV" resolve="ioe" />
+                          </node>
+                        </node>
+                        <node concept="10Nm6u" id="4XPt_HaRkV6" role="37wK5m" />
                       </node>
                     </node>
                   </node>
@@ -716,61 +734,35 @@
                           <ref role="3cqZAo" node="4aEqBbbsVTY" resolve="res" />
                         </node>
                         <node concept="TSZUe" id="6HKgezSw0kD" role="2OqNvi">
-                          <node concept="3cpWs3" id="6HKgezSwbiZ" role="25WWJ7">
-                            <node concept="Xl_RD" id="6HKgezSwbjy" role="3uHU7w">
-                              <property role="Xl_RC" value="KB" />
-                            </node>
-                            <node concept="3cpWs3" id="6HKgezSw9sy" role="3uHU7B">
-                              <node concept="3cpWs3" id="6HKgezSw6F9" role="3uHU7B">
-                                <node concept="3cpWs3" id="6HKgezSw2oo" role="3uHU7B">
-                                  <node concept="Xl_RD" id="6HKgezSw0Ik" role="3uHU7B">
-                                    <property role="Xl_RC" value="File '" />
-                                  </node>
-                                  <node concept="2OqwBi" id="7AhcwybAMmh" role="3uHU7w">
-                                    <node concept="2OqwBi" id="7AhcwybAHpK" role="2Oq$k0">
-                                      <node concept="2OqwBi" id="4zoES75HB_c" role="2Oq$k0">
-                                        <node concept="liA8E" id="4zoES75HE4O" role="2OqNvi">
-                                          <ref role="37wK5l" to="eoo2:~Path.relativize(java.nio.file.Path)" resolve="relativize" />
-                                          <node concept="2GrUjf" id="4zoES75I6Gc" role="37wK5m">
-                                            <ref role="2Gs0qQ" node="6HKgezSvwqF" resolve="p" />
-                                          </node>
-                                        </node>
-                                        <node concept="2OqwBi" id="4zoES75I4H5" role="2Oq$k0">
-                                          <node concept="2ShNRf" id="4zoES75I4H6" role="2Oq$k0">
-                                            <node concept="1pGfFk" id="4zoES75I4H7" role="2ShVmc">
-                                              <property role="373rjd" value="true" />
-                                              <ref role="37wK5l" to="guwi:~File.&lt;init&gt;(java.lang.String)" resolve="File" />
-                                              <node concept="37vLTw" id="4zoES75I4H8" role="37wK5m">
-                                                <ref role="3cqZAo" node="6HKgezSvh5b" resolve="directoryContainingProject" />
-                                              </node>
-                                            </node>
-                                          </node>
-                                          <node concept="liA8E" id="4zoES75I4H9" role="2OqNvi">
-                                            <ref role="37wK5l" to="guwi:~File.toPath()" resolve="toPath" />
-                                          </node>
-                                        </node>
-                                      </node>
-                                      <node concept="liA8E" id="7AhcwybALmh" role="2OqNvi">
-                                        <ref role="37wK5l" to="eoo2:~Path.toString()" resolve="toString" />
-                                      </node>
+                          <node concept="2ShNRf" id="4XPt_HaRb5v" role="25WWJ7">
+                            <node concept="1pGfFk" id="4XPt_HaRbO2" role="2ShVmc">
+                              <property role="373rjd" value="true" />
+                              <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                              <node concept="3cpWs3" id="6HKgezSwbiZ" role="37wK5m">
+                                <node concept="Xl_RD" id="6HKgezSwbjy" role="3uHU7w">
+                                  <property role="Xl_RC" value="KB" />
+                                </node>
+                                <node concept="3cpWs3" id="6HKgezSw9sy" role="3uHU7B">
+                                  <node concept="3cpWs3" id="6HKgezSw6F9" role="3uHU7B">
+                                    <node concept="Xl_RD" id="6HKgezSw7hB" role="3uHU7w">
+                                      <property role="Xl_RC" value="' is bigger than " />
                                     </node>
-                                    <node concept="liA8E" id="7AhcwybAOct" role="2OqNvi">
-                                      <ref role="37wK5l" to="wyt6:~String.replace(char,char)" resolve="replace" />
-                                      <node concept="1Xhbcc" id="7AhcwybAP6E" role="37wK5m">
-                                        <property role="1XhdNS" value="\\" />
-                                      </node>
-                                      <node concept="1Xhbcc" id="7AhcwybARGF" role="37wK5m">
-                                        <property role="1XhdNS" value="/" />
-                                      </node>
+                                    <node concept="Xl_RD" id="4XPt_HaR8xv" role="3uHU7B">
+                                      <property role="Xl_RC" value="The file " />
                                     </node>
                                   </node>
-                                </node>
-                                <node concept="Xl_RD" id="6HKgezSw7hB" role="3uHU7w">
-                                  <property role="Xl_RC" value="' is bigger than " />
+                                  <node concept="2j1LYi" id="7AhcwybAGdN" role="3uHU7w">
+                                    <ref role="2j1LYj" node="pFzydTBLXy" resolve="sizeInKb" />
+                                  </node>
                                 </node>
                               </node>
-                              <node concept="2j1LYi" id="7AhcwybAGdN" role="3uHU7w">
-                                <ref role="2j1LYj" node="pFzydTBLXy" resolve="sizeInKb" />
+                              <node concept="2OqwBi" id="4XPt_HaRnuR" role="37wK5m">
+                                <node concept="2GrUjf" id="4XPt_HaRh6z" role="2Oq$k0">
+                                  <ref role="2Gs0qQ" node="6HKgezSvwqF" resolve="p" />
+                                </node>
+                                <node concept="liA8E" id="4XPt_HaRp2A" role="2OqNvi">
+                                  <ref role="37wK5l" to="eoo2:~Path.toFile()" resolve="toFile" />
+                                </node>
                               </node>
                             </node>
                           </node>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/org.mpsqa.lint.generic.sandbox.msd b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/org.mpsqa.lint.generic.sandbox.msd
index 6afa64ae..aefd060d 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/org.mpsqa.lint.generic.sandbox.msd
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/org.mpsqa.lint.generic.sandbox.msd
@@ -20,6 +20,7 @@
     <dependency reexport="false">742f6602-5a2f-4313-aa6e-ae1cd4ffdc61(MPS.Platform)</dependency>
     <dependency reexport="false">a1250a4d-c090-42c3-ad7c-d298a3357dd4(jetbrains.mps.make.runtime)</dependency>
     <dependency reexport="false">215c4c45-ba99-49f5-9ab7-4b6901a63cfd(MPS.Generator)</dependency>
+    <dependency reexport="false">498d89d2-c2e9-11e2-ad49-6cf049e62fe5(MPS.IDEA)</dependency>
   </dependencies>
   <languageVersions>
     <language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
index bef40159..33cfa864 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
@@ -22,7 +22,6 @@
         <child id="1068498886297" name="rValue" index="37vLTx" />
         <child id="1068498886295" name="lValue" index="37vLTJ" />
       </concept>
-      <concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
       <concept id="1154032098014" name="jetbrains.mps.baseLanguage.structure.AbstractLoopStatement" flags="nn" index="2LF5Ji">
         <child id="1154032183016" name="body" index="2LFqv$" />
       </concept>
@@ -119,13 +118,9 @@
       <concept id="4693937538533521280" name="jetbrains.mps.lang.smodel.structure.OfConceptOperation" flags="ng" index="v3k3i">
         <child id="4693937538533538124" name="requestedConcept" index="v3oSu" />
       </concept>
-      <concept id="1143234257716" name="jetbrains.mps.lang.smodel.structure.Node_GetModelOperation" flags="nn" index="I4A8Y" />
       <concept id="1145383075378" name="jetbrains.mps.lang.smodel.structure.SNodeListType" flags="in" index="2I9FWS">
         <reference id="1145383142433" name="elementConcept" index="2I9WkF" />
       </concept>
-      <concept id="1145404486709" name="jetbrains.mps.lang.smodel.structure.SemanticDowncastExpression" flags="nn" index="2JrnkZ">
-        <child id="1145404616321" name="leftExpression" index="2JrQYb" />
-      </concept>
       <concept id="1145567426890" name="jetbrains.mps.lang.smodel.structure.SNodeListCreator" flags="nn" index="2T8Vx0">
         <child id="1145567471833" name="createdType" index="2T96Bj" />
       </concept>
@@ -770,58 +765,8 @@
                         <property role="Xl_RC" value="'" />
                       </node>
                       <node concept="3cpWs3" id="78RogMCDf8_" role="3uHU7B">
-                        <node concept="3cpWs3" id="78RogMCDf8A" role="3uHU7B">
-                          <node concept="3cpWs3" id="78RogMCDf8B" role="3uHU7B">
-                            <node concept="2OqwBi" id="78RogMCDf8C" role="3uHU7w">
-                              <node concept="2OqwBi" id="78RogMCDf8D" role="2Oq$k0">
-                                <node concept="2JrnkZ" id="78RogMCDf8E" role="2Oq$k0">
-                                  <node concept="2OqwBi" id="78RogMCDf8F" role="2JrQYb">
-                                    <node concept="37vLTw" id="2zdrQh7q_73" role="2Oq$k0">
-                                      <ref role="3cqZAo" node="2zdrQh7oJuy" resolve="behavior" />
-                                    </node>
-                                    <node concept="I4A8Y" id="78RogMCDf8H" role="2OqNvi" />
-                                  </node>
-                                </node>
-                                <node concept="liA8E" id="78RogMCDf8I" role="2OqNvi">
-                                  <ref role="37wK5l" to="mhbf:~SModel.getName()" resolve="getName" />
-                                </node>
-                              </node>
-                              <node concept="liA8E" id="78RogMCDf8J" role="2OqNvi">
-                                <ref role="37wK5l" to="mhbf:~SModelName.getValue()" resolve="getValue" />
-                              </node>
-                            </node>
-                            <node concept="3cpWs3" id="78RogMCDf8K" role="3uHU7B">
-                              <node concept="3cpWs3" id="78RogMCDf8L" role="3uHU7B">
-                                <node concept="2OqwBi" id="78RogMCDf8M" role="3uHU7w">
-                                  <node concept="37vLTw" id="2zdrQh7qzQ0" role="2Oq$k0">
-                                    <ref role="3cqZAo" node="2zdrQh7oJuy" resolve="behavior" />
-                                  </node>
-                                  <node concept="3TrcHB" id="78RogMCDf8O" role="2OqNvi">
-                                    <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                                  </node>
-                                </node>
-                                <node concept="3cpWs3" id="78RogMCDf8P" role="3uHU7B">
-                                  <node concept="3cpWs3" id="78RogMCDf8Q" role="3uHU7B">
-                                    <node concept="Xl_RD" id="78RogMCDf8R" role="3uHU7B">
-                                      <property role="Xl_RC" value="concept method '" />
-                                    </node>
-                                    <node concept="37vLTw" id="78RogMCDf8S" role="3uHU7w">
-                                      <ref role="3cqZAo" node="3pz5R1DJaEC" resolve="nameAndSignature" />
-                                    </node>
-                                  </node>
-                                  <node concept="Xl_RD" id="78RogMCDf8T" role="3uHU7w">
-                                    <property role="Xl_RC" value="' from rootNode '" />
-                                  </node>
-                                </node>
-                              </node>
-                              <node concept="Xl_RD" id="78RogMCDf8U" role="3uHU7w">
-                                <property role="Xl_RC" value="' from model '" />
-                              </node>
-                            </node>
-                          </node>
-                          <node concept="Xl_RD" id="78RogMCDf8V" role="3uHU7w">
-                            <property role="Xl_RC" value="' has the same signature as concept method from '" />
-                          </node>
+                        <node concept="Xl_RD" id="4XPt_HaT1rx" role="3uHU7B">
+                          <property role="Xl_RC" value="the concept method has the same signature as concept method from '" />
                         </node>
                         <node concept="2OqwBi" id="78RogMCDf8W" role="3uHU7w">
                           <node concept="2OqwBi" id="78RogMCDf8X" role="2Oq$k0">
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.build_scripts.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.build_scripts.mps
index 0ae44d4d..d5cda7a4 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.build_scripts.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.build_scripts.mps
@@ -80,7 +80,6 @@
       <concept id="1068580123137" name="jetbrains.mps.baseLanguage.structure.BooleanConstant" flags="nn" index="3clFbT">
         <property id="1068580123138" name="value" index="3clFbU" />
       </concept>
-      <concept id="1068581242875" name="jetbrains.mps.baseLanguage.structure.PlusExpression" flags="nn" index="3cpWs3" />
       <concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
         <child id="1068581517676" name="expression" index="3cqZAk" />
       </concept>
@@ -105,10 +104,6 @@
         <reference id="1107535924139" name="classifier" index="3uigEE" />
         <child id="1109201940907" name="parameter" index="11_B2D" />
       </concept>
-      <concept id="1081773326031" name="jetbrains.mps.baseLanguage.structure.BinaryOperation" flags="nn" index="3uHJSO">
-        <child id="1081773367579" name="rightExpression" index="3uHU7w" />
-        <child id="1081773367580" name="leftExpression" index="3uHU7B" />
-      </concept>
       <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
         <child id="1178549979242" name="visibility" index="1B3o_S" />
       </concept>
@@ -126,7 +121,6 @@
       <concept id="1177026924588" name="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" flags="nn" index="chp4Y">
         <reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
       </concept>
-      <concept id="8329979535468945057" name="jetbrains.mps.lang.smodel.structure.Node_PresentationOperation" flags="ng" index="2Iv5rx" />
       <concept id="3562215692195599741" name="jetbrains.mps.lang.smodel.structure.SLinkImplicitSelect" flags="nn" index="13MTOL">
         <reference id="3562215692195600259" name="link" index="13MTZf" />
       </concept>
@@ -468,21 +462,8 @@
                             <node concept="1pGfFk" id="4lmpEOOA1FT" role="2ShVmc">
                               <property role="373rjd" value="true" />
                               <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
-                              <node concept="3cpWs3" id="1anGYsMsnoe" role="37wK5m">
-                                <node concept="3cpWs3" id="1anGYsMsnof" role="3uHU7B">
-                                  <node concept="Xl_RD" id="1anGYsMsnog" role="3uHU7B">
-                                    <property role="Xl_RC" value="Plugin '" />
-                                  </node>
-                                  <node concept="2OqwBi" id="1Ke2sdkiKwc" role="3uHU7w">
-                                    <node concept="2GrUjf" id="1Ke2sdkiKkc" role="2Oq$k0">
-                                      <ref role="2Gs0qQ" node="1Ke2sdkiFDy" resolve="ip" />
-                                    </node>
-                                    <node concept="2Iv5rx" id="1Ke2sdkjFOj" role="2OqNvi" />
-                                  </node>
-                                </node>
-                                <node concept="Xl_RD" id="1anGYsMsnok" role="3uHU7w">
-                                  <property role="Xl_RC" value="' is involved in a cyclic dependency" />
-                                </node>
+                              <node concept="Xl_RD" id="4XPt_HaTl91" role="37wK5m">
+                                <property role="Xl_RC" value="Plugin is involved in a cyclic dependency" />
                               </node>
                               <node concept="2GrUjf" id="4lmpEOOA22n" role="37wK5m">
                                 <ref role="2Gs0qQ" node="1Ke2sdkiFDy" resolve="ip" />
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_editor.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_editor.mps
index 4375b5c2..9a38f97d 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_editor.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_editor.mps
@@ -191,6 +191,9 @@
         <child id="7741759128795045752" name="exp" index="2j1LYg" />
         <child id="7741759128795065723" name="paramRef" index="2j1YQj" />
       </concept>
+      <concept id="7679435328618353697" name="org.mpsqa.lint.generic.structure.FormatException" flags="ng" index="vsK6v">
+        <child id="7679435328618377120" name="exception" index="vsfCu" />
+      </concept>
       <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ng" index="3miP$Z">
         <property id="7008376823202030902" name="skipEvaluation" index="3miQiw" />
       </concept>
@@ -207,12 +210,6 @@
         <child id="1199569916463" name="body" index="1bW5cS" />
       </concept>
     </language>
-    <language id="760a0a8c-eabb-4521-8bfd-65db761a9ba3" name="jetbrains.mps.baseLanguage.logging">
-      <concept id="6332851714983831325" name="jetbrains.mps.baseLanguage.logging.structure.MsgStatement" flags="ng" index="2xdQw9">
-        <child id="5721587534047265374" name="message" index="9lYJi" />
-        <child id="5721587534047265375" name="throwable" index="9lYJj" />
-      </concept>
-    </language>
     <language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
       <concept id="1177026924588" name="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" flags="nn" index="chp4Y">
         <reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
@@ -1146,12 +1143,24 @@
                               </node>
                             </node>
                           </node>
-                          <node concept="2xdQw9" id="2ZPTSapgKiL" role="3cqZAp">
-                            <node concept="Xl_RD" id="2ZPTSapgKiN" role="9lYJi">
-                              <property role="Xl_RC" value="interrupted exception while waiting for the editor to open" />
-                            </node>
-                            <node concept="37vLTw" id="2ZPTSapgK$m" role="9lYJj">
-                              <ref role="3cqZAo" node="6wZqgFKVtlm" resolve="e" />
+                          <node concept="3clFbF" id="4XPt_HaTH5B" role="3cqZAp">
+                            <node concept="2OqwBi" id="4XPt_HaTH5C" role="3clFbG">
+                              <node concept="37vLTw" id="4XPt_HaTH5D" role="2Oq$k0">
+                                <ref role="3cqZAo" node="6wZqgFKVtka" resolve="res" />
+                              </node>
+                              <node concept="TSZUe" id="4XPt_HaTH5E" role="2OqNvi">
+                                <node concept="2ShNRf" id="4XPt_HaTH5F" role="25WWJ7">
+                                  <node concept="1pGfFk" id="4XPt_HaTH5G" role="2ShVmc">
+                                    <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                                    <node concept="vsK6v" id="4XPt_HaTH5H" role="37wK5m">
+                                      <node concept="37vLTw" id="6EiPrTPVj5$" role="vsfCu">
+                                        <ref role="3cqZAo" node="6wZqgFKVtlm" resolve="e" />
+                                      </node>
+                                    </node>
+                                    <node concept="10Nm6u" id="4XPt_HaTH5I" role="37wK5m" />
+                                  </node>
+                                </node>
+                              </node>
                             </node>
                           </node>
                         </node>
@@ -2087,36 +2096,8 @@
                                             <property role="Xl_RC" value="MB" />
                                           </node>
                                           <node concept="3cpWs3" id="2TekImn84e8" role="3uHU7B">
-                                            <node concept="3cpWs3" id="2TekImn84e9" role="3uHU7B">
-                                              <node concept="3cpWs3" id="2TekImn84ea" role="3uHU7B">
-                                                <node concept="3cpWs3" id="2TekImn84eb" role="3uHU7B">
-                                                  <node concept="3cpWs3" id="2TekImn84ec" role="3uHU7B">
-                                                    <node concept="Xl_RD" id="2TekImn84ed" role="3uHU7B">
-                                                      <property role="Xl_RC" value="editor retained too much memory on root node '" />
-                                                    </node>
-                                                    <node concept="2OqwBi" id="2TekImn84ee" role="3uHU7w">
-                                                      <node concept="2GrUjf" id="2TekImn84ef" role="2Oq$k0">
-                                                        <ref role="2Gs0qQ" node="2TekImn84ck" resolve="rootNode" />
-                                                      </node>
-                                                      <node concept="3TrcHB" id="2TekImn84eg" role="2OqNvi">
-                                                        <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                                                      </node>
-                                                    </node>
-                                                  </node>
-                                                  <node concept="Xl_RD" id="2TekImn84eh" role="3uHU7w">
-                                                    <property role="Xl_RC" value="' from model " />
-                                                  </node>
-                                                </node>
-                                                <node concept="2OqwBi" id="2TekImn84ei" role="3uHU7w">
-                                                  <node concept="2GrUjf" id="2TekImn84ej" role="2Oq$k0">
-                                                    <ref role="2Gs0qQ" node="2TekImn84bL" resolve="m" />
-                                                  </node>
-                                                  <node concept="LkI2h" id="2TekImn84ek" role="2OqNvi" />
-                                                </node>
-                                              </node>
-                                              <node concept="Xl_RD" id="2TekImn84el" role="3uHU7w">
-                                                <property role="Xl_RC" value=" - it retained " />
-                                              </node>
+                                            <node concept="Xl_RD" id="4XPt_HaTvLG" role="3uHU7B">
+                                              <property role="Xl_RC" value="Editor retained too much memory:" />
                                             </node>
                                             <node concept="2YIFZM" id="5BymHIvyS5e" role="3uHU7w">
                                               <ref role="37wK5l" to="wyt6:~String.format(java.lang.String,java.lang.Object...)" resolve="format" />
@@ -2226,12 +2207,24 @@
                               </node>
                             </node>
                           </node>
-                          <node concept="2xdQw9" id="2TekImn84dp" role="3cqZAp">
-                            <node concept="Xl_RD" id="2TekImn84dq" role="9lYJi">
-                              <property role="Xl_RC" value="interrupted exception while waiting for the editor to open" />
-                            </node>
-                            <node concept="37vLTw" id="2TekImn84dr" role="9lYJj">
-                              <ref role="3cqZAo" node="2TekImn84ds" resolve="e" />
+                          <node concept="3clFbF" id="6EiPrTPS4UL" role="3cqZAp">
+                            <node concept="2OqwBi" id="6EiPrTPS6fR" role="3clFbG">
+                              <node concept="37vLTw" id="6EiPrTPS4UK" role="2Oq$k0">
+                                <ref role="3cqZAo" node="2TekImn84bv" resolve="res" />
+                              </node>
+                              <node concept="TSZUe" id="6EiPrTPS7dZ" role="2OqNvi">
+                                <node concept="2ShNRf" id="4XPt_HaB7jl" role="25WWJ7">
+                                  <node concept="1pGfFk" id="4XPt_HaB8Wf" role="2ShVmc">
+                                    <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                                    <node concept="vsK6v" id="6EiPrTPUBp4" role="37wK5m">
+                                      <node concept="37vLTw" id="4XPt_HaTGkA" role="vsfCu">
+                                        <ref role="3cqZAo" node="2TekImn84ds" resolve="e" />
+                                      </node>
+                                    </node>
+                                    <node concept="10Nm6u" id="4XPt_HaB9Qy" role="37wK5m" />
+                                  </node>
+                                </node>
+                              </node>
                             </node>
                           </node>
                         </node>
@@ -2261,36 +2254,8 @@
                                       <property role="Xl_RC" value="ms" />
                                     </node>
                                     <node concept="3cpWs3" id="2TekImn84dF" role="3uHU7B">
-                                      <node concept="3cpWs3" id="2TekImn84dG" role="3uHU7B">
-                                        <node concept="3cpWs3" id="2TekImn84dH" role="3uHU7B">
-                                          <node concept="3cpWs3" id="2TekImn84dI" role="3uHU7B">
-                                            <node concept="3cpWs3" id="2TekImn84dJ" role="3uHU7B">
-                                              <node concept="Xl_RD" id="2TekImn84dK" role="3uHU7B">
-                                                <property role="Xl_RC" value="editor opened too slow on root node '" />
-                                              </node>
-                                              <node concept="2OqwBi" id="2TekImn84dL" role="3uHU7w">
-                                                <node concept="2GrUjf" id="2TekImn84dM" role="2Oq$k0">
-                                                  <ref role="2Gs0qQ" node="2TekImn84ck" resolve="rootNode" />
-                                                </node>
-                                                <node concept="3TrcHB" id="2TekImn84dN" role="2OqNvi">
-                                                  <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                                                </node>
-                                              </node>
-                                            </node>
-                                            <node concept="Xl_RD" id="2TekImn84dO" role="3uHU7w">
-                                              <property role="Xl_RC" value="' from model " />
-                                            </node>
-                                          </node>
-                                          <node concept="2OqwBi" id="2TekImn84dP" role="3uHU7w">
-                                            <node concept="2GrUjf" id="2TekImn84dQ" role="2Oq$k0">
-                                              <ref role="2Gs0qQ" node="2TekImn84bL" resolve="m" />
-                                            </node>
-                                            <node concept="LkI2h" id="2TekImn84dR" role="2OqNvi" />
-                                          </node>
-                                        </node>
-                                        <node concept="Xl_RD" id="2TekImn84dS" role="3uHU7w">
-                                          <property role="Xl_RC" value=". Timeout reached: " />
-                                        </node>
+                                      <node concept="Xl_RD" id="4XPt_HaTAKG" role="3uHU7B">
+                                        <property role="Xl_RC" value="Editor opened too slow. Timeout reached: " />
                                       </node>
                                       <node concept="37vLTw" id="2TekImn84dT" role="3uHU7w">
                                         <ref role="3cqZAo" node="2TekImn84cr" resolve="elapsedTime" />
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_typesystem.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_typesystem.mps
index 2361b594..c197097c 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_typesystem.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_typesystem.mps
@@ -973,11 +973,19 @@
           <node concept="3cpWsn" id="2xFKNLWB3E1" role="3cpWs9">
             <property role="TrG5h" value="res" />
             <node concept="_YKpA" id="2xFKNLWB3E2" role="1tU5fm">
-              <node concept="17QB3L" id="2xFKNLWB3E4" role="_ZDj9" />
+              <node concept="3uibUv" id="4XPt_HaU3tX" role="_ZDj9">
+                <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                <node concept="17QB3L" id="4XPt_HaU5SH" role="11_B2D" />
+                <node concept="H_c77" id="4XPt_HaU7aX" role="11_B2D" />
+              </node>
             </node>
             <node concept="2ShNRf" id="2xFKNLWB3E6" role="33vP2m">
               <node concept="Tc6Ow" id="2xFKNLWB3E7" role="2ShVmc">
-                <node concept="17QB3L" id="2uhEaMSQHh$" role="HW$YZ" />
+                <node concept="3uibUv" id="4XPt_HaU7n5" role="HW$YZ">
+                  <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                  <node concept="17QB3L" id="4XPt_HaU7n6" role="11_B2D" />
+                  <node concept="H_c77" id="4XPt_HaU7n7" role="11_B2D" />
+                </node>
               </node>
             </node>
           </node>
@@ -1273,11 +1281,23 @@
           <node concept="3cpWsn" id="2xFKNLWBBLs" role="3cpWs9">
             <property role="TrG5h" value="res" />
             <node concept="_YKpA" id="2xFKNLWBBLt" role="1tU5fm">
-              <node concept="17QB3L" id="2uhEaMSQPkQ" role="_ZDj9" />
+              <node concept="3uibUv" id="4XPt_HaUw0y" role="_ZDj9">
+                <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                <node concept="17QB3L" id="4XPt_HaUyrm" role="11_B2D" />
+                <node concept="3uibUv" id="4XPt_HaU$W0" role="11_B2D">
+                  <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
+                </node>
+              </node>
             </node>
             <node concept="2ShNRf" id="2xFKNLWBBLx" role="33vP2m">
               <node concept="Tc6Ow" id="2xFKNLWBBLy" role="2ShVmc">
-                <node concept="17QB3L" id="2uhEaMSQPvn" role="HW$YZ" />
+                <node concept="3uibUv" id="4XPt_HaU_dO" role="HW$YZ">
+                  <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                  <node concept="17QB3L" id="4XPt_HaU_dP" role="11_B2D" />
+                  <node concept="3uibUv" id="4XPt_HaU_dQ" role="11_B2D">
+                    <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
+                  </node>
+                </node>
               </node>
             </node>
           </node>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_utils.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_utils.mps
index c930c94e..e921acc5 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_utils.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_utils.mps
@@ -438,31 +438,24 @@
                       <ref role="3cqZAo" node="2xFKNLWBFC5" resolve="res" />
                     </node>
                     <node concept="TSZUe" id="2xFKNLWBFBw" role="2OqNvi">
-                      <node concept="3cpWs3" id="2xFKNLWBFBz" role="25WWJ7">
-                        <node concept="Xl_RD" id="2xFKNLWBFB$" role="3uHU7w">
-                          <property role="Xl_RC" value="ms" />
-                        </node>
-                        <node concept="3cpWs3" id="2xFKNLWBFB_" role="3uHU7B">
-                          <node concept="3cpWs3" id="2xFKNLWBFBA" role="3uHU7B">
-                            <node concept="3cpWs3" id="2xFKNLWBFBC" role="3uHU7B">
-                              <node concept="3cpWs3" id="2xFKNLWBFBD" role="3uHU7B">
-                                <node concept="Xl_RD" id="2xFKNLWBFBE" role="3uHU7B">
-                                  <property role="Xl_RC" value="non-typesystem checks too slow on module '" />
-                                </node>
-                                <node concept="2GrUjf" id="2xFKNLWBZuN" role="3uHU7w">
-                                  <ref role="2Gs0qQ" node="2xFKNLWBFAn" resolve="module" />
-                                </node>
+                      <node concept="2ShNRf" id="4XPt_HaUd5e" role="25WWJ7">
+                        <node concept="1pGfFk" id="4XPt_HaUe3f" role="2ShVmc">
+                          <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                          <node concept="3cpWs3" id="2xFKNLWBFBz" role="37wK5m">
+                            <node concept="Xl_RD" id="2xFKNLWBFB$" role="3uHU7w">
+                              <property role="Xl_RC" value="ms" />
+                            </node>
+                            <node concept="3cpWs3" id="2xFKNLWBFB_" role="3uHU7B">
+                              <node concept="Xl_RD" id="2xFKNLWBFBE" role="3uHU7B">
+                                <property role="Xl_RC" value="Non-typesystem checks too slow: " />
                               </node>
-                              <node concept="Xl_RD" id="2xFKNLWBFBG" role="3uHU7w">
-                                <property role="Xl_RC" value="'" />
+                              <node concept="37vLTw" id="2uhEaMSTF4G" role="3uHU7w">
+                                <ref role="3cqZAo" node="2xFKNLWBFB0" resolve="elapsedTime" />
                               </node>
                             </node>
-                            <node concept="Xl_RD" id="2xFKNLWBFBK" role="3uHU7w">
-                              <property role="Xl_RC" value=" - it took " />
-                            </node>
                           </node>
-                          <node concept="37vLTw" id="2uhEaMSTF4G" role="3uHU7w">
-                            <ref role="3cqZAo" node="2xFKNLWBFB0" resolve="elapsedTime" />
+                          <node concept="2GrUjf" id="4XPt_HaUkw7" role="37wK5m">
+                            <ref role="2Gs0qQ" node="2xFKNLWBFAn" resolve="module" />
                           </node>
                         </node>
                       </node>
@@ -509,7 +502,13 @@
       <node concept="37vLTG" id="2xFKNLWBFC5" role="3clF46">
         <property role="TrG5h" value="res" />
         <node concept="_YKpA" id="2xFKNLWBFC6" role="1tU5fm">
-          <node concept="17QB3L" id="2uhEaMSQNsM" role="_ZDj9" />
+          <node concept="3uibUv" id="4XPt_HaU8Tc" role="_ZDj9">
+            <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+            <node concept="17QB3L" id="4XPt_HaUatY" role="11_B2D" />
+            <node concept="3uibUv" id="4XPt_HaUbke" role="11_B2D">
+              <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
+            </node>
+          </node>
         </node>
       </node>
     </node>
@@ -672,29 +671,25 @@
                       <ref role="3cqZAo" node="2xFKNLWAMro" resolve="res" />
                     </node>
                     <node concept="TSZUe" id="2xFKNLWAMqN" role="2OqNvi">
-                      <node concept="3cpWs3" id="2xFKNLWAMqQ" role="25WWJ7">
-                        <node concept="Xl_RD" id="2xFKNLWAMqR" role="3uHU7w">
-                          <property role="Xl_RC" value="ms" />
-                        </node>
-                        <node concept="3cpWs3" id="2xFKNLWAMqS" role="3uHU7B">
-                          <node concept="3cpWs3" id="2xFKNLWAMqT" role="3uHU7B">
-                            <node concept="3cpWs3" id="2xFKNLWAMqU" role="3uHU7B">
+                      <node concept="2ShNRf" id="4XPt_HaTUax" role="25WWJ7">
+                        <node concept="1pGfFk" id="4XPt_HaTV4D" role="2ShVmc">
+                          <property role="373rjd" value="true" />
+                          <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                          <node concept="3cpWs3" id="2xFKNLWAMqQ" role="37wK5m">
+                            <node concept="Xl_RD" id="2xFKNLWAMqR" role="3uHU7w">
+                              <property role="Xl_RC" value="ms" />
+                            </node>
+                            <node concept="3cpWs3" id="2xFKNLWAMqS" role="3uHU7B">
                               <node concept="Xl_RD" id="2xFKNLWAMqX" role="3uHU7B">
-                                <property role="Xl_RC" value="non-typesystem checks too slow on model '" />
+                                <property role="Xl_RC" value="non-typesystem checks too slow: " />
                               </node>
-                              <node concept="2OqwBi" id="2xFKNLWAMr0" role="3uHU7w">
-                                <node concept="2GrUjf" id="2xFKNLWAMr1" role="2Oq$k0">
-                                  <ref role="2Gs0qQ" node="6o7R8__tZIO" resolve="m" />
-                                </node>
-                                <node concept="LkI2h" id="2xFKNLWAMr2" role="2OqNvi" />
+                              <node concept="37vLTw" id="2uhEaMSTD8y" role="3uHU7w">
+                                <ref role="3cqZAo" node="6o7R8__tMOz" resolve="elapsedTime" />
                               </node>
                             </node>
-                            <node concept="Xl_RD" id="2xFKNLWAMr3" role="3uHU7w">
-                              <property role="Xl_RC" value="' - it took " />
-                            </node>
                           </node>
-                          <node concept="37vLTw" id="2uhEaMSTD8y" role="3uHU7w">
-                            <ref role="3cqZAo" node="6o7R8__tMOz" resolve="elapsedTime" />
+                          <node concept="2GrUjf" id="4XPt_HaTX2s" role="37wK5m">
+                            <ref role="2Gs0qQ" node="6o7R8__tZIO" resolve="m" />
                           </node>
                         </node>
                       </node>
@@ -743,7 +738,11 @@
       <node concept="37vLTG" id="2xFKNLWAMro" role="3clF46">
         <property role="TrG5h" value="res" />
         <node concept="_YKpA" id="2xFKNLWAMrp" role="1tU5fm">
-          <node concept="17QB3L" id="2xFKNLWB3E4" role="_ZDj9" />
+          <node concept="3uibUv" id="4XPt_HaTNc$" role="_ZDj9">
+            <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+            <node concept="17QB3L" id="4XPt_HaTODI" role="11_B2D" />
+            <node concept="H_c77" id="4XPt_HaTQiV" role="11_B2D" />
+          </node>
         </node>
       </node>
     </node>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.structure_aspect.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.structure_aspect.mps
index e8451222..10a7c4a9 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.structure_aspect.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.structure_aspect.mps
@@ -58,7 +58,6 @@
         <child id="1068581517665" name="statement" index="3cqZAp" />
       </concept>
       <concept id="1068580123137" name="jetbrains.mps.baseLanguage.structure.BooleanConstant" flags="nn" index="3clFbT" />
-      <concept id="1068581242875" name="jetbrains.mps.baseLanguage.structure.PlusExpression" flags="nn" index="3cpWs3" />
       <concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
         <child id="1068581517676" name="expression" index="3cqZAk" />
       </concept>
@@ -380,23 +379,8 @@
                       <node concept="3cpWsn" id="2s7fKStziwq" role="3cpWs9">
                         <property role="TrG5h" value="msg" />
                         <node concept="17QB3L" id="2s7fKStziwr" role="1tU5fm" />
-                        <node concept="3cpWs3" id="2s7fKStziws" role="33vP2m">
-                          <node concept="3cpWs3" id="2s7fKStziwt" role="3uHU7B">
-                            <node concept="Xl_RD" id="2s7fKStziwu" role="3uHU7B">
-                              <property role="Xl_RC" value="Concept '" />
-                            </node>
-                            <node concept="2OqwBi" id="2s7fKStziwv" role="3uHU7w">
-                              <node concept="2GrUjf" id="2s7fKStziwx" role="2Oq$k0">
-                                <ref role="2Gs0qQ" node="3bllPAaPI5n" resolve="conceptDeclaration" />
-                              </node>
-                              <node concept="3TrcHB" id="2s7fKStziwz" role="2OqNvi">
-                                <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                              </node>
-                            </node>
-                          </node>
-                          <node concept="Xl_RD" id="2s7fKStziw$" role="3uHU7w">
-                            <property role="Xl_RC" value="' is marked as 'can be root' but does not implement INamedConcept" />
-                          </node>
+                        <node concept="Xl_RD" id="4XPt_HaUGvw" role="33vP2m">
+                          <property role="Xl_RC" value="Concept is marked as 'can be root' but does not implement INamedConcept" />
                         </node>
                       </node>
                     </node>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.tests.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.tests.mps
index f8c41502..7231e192 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.tests.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.tests.mps
@@ -19,15 +19,22 @@
     <import index="5tjl" ref="r:5315d75f-2eea-4bf2-899f-f3d94810cea5(jetbrains.mps.build.mps.tests.structure)" />
     <import index="7f1d" ref="r:7bb3f1f1-7557-4f02-8802-5f9a48253a88(jetbrains.mps.build.mps.tests.behavior)" />
     <import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" />
+    <import index="zn9m" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.util(MPS.IDEA/)" />
   </imports>
   <registry>
     <language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
       <concept id="4836112446988635817" name="jetbrains.mps.baseLanguage.structure.UndefinedType" flags="in" index="2jxLKc" />
       <concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
+      <concept id="1154032098014" name="jetbrains.mps.baseLanguage.structure.AbstractLoopStatement" flags="nn" index="2LF5Ji">
+        <child id="1154032183016" name="body" index="2LFqv$" />
+      </concept>
       <concept id="1197027756228" name="jetbrains.mps.baseLanguage.structure.DotExpression" flags="nn" index="2OqwBi">
         <child id="1197027771414" name="operand" index="2Oq$k0" />
         <child id="1197027833540" name="operation" index="2OqNvi" />
       </concept>
+      <concept id="1145552977093" name="jetbrains.mps.baseLanguage.structure.GenericNewExpression" flags="nn" index="2ShNRf">
+        <child id="1145553007750" name="creator" index="2ShVmc" />
+      </concept>
       <concept id="1137021947720" name="jetbrains.mps.baseLanguage.structure.ConceptFunction" flags="in" index="2VMwT0">
         <child id="1137022507850" name="body" index="2VODD2" />
       </concept>
@@ -55,7 +62,6 @@
       <concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
         <child id="1068581517665" name="statement" index="3cqZAp" />
       </concept>
-      <concept id="1068581242875" name="jetbrains.mps.baseLanguage.structure.PlusExpression" flags="nn" index="3cpWs3" />
       <concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
         <child id="1068581517676" name="expression" index="3cqZAk" />
       </concept>
@@ -70,12 +76,10 @@
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
+      <concept id="1212685548494" name="jetbrains.mps.baseLanguage.structure.ClassCreator" flags="nn" index="1pGfFk" />
       <concept id="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
         <reference id="1107535924139" name="classifier" index="3uigEE" />
-      </concept>
-      <concept id="1081773326031" name="jetbrains.mps.baseLanguage.structure.BinaryOperation" flags="nn" index="3uHJSO">
-        <child id="1081773367579" name="rightExpression" index="3uHU7w" />
-        <child id="1081773367580" name="leftExpression" index="3uHU7B" />
+        <child id="1109201940907" name="parameter" index="11_B2D" />
       </concept>
     </language>
     <language id="40ab19e9-751a-4433-b645-0e65160e58a0" name="org.mpsqa.lint.generic">
@@ -137,6 +141,9 @@
       <concept id="1176906603202" name="jetbrains.mps.baseLanguage.collections.structure.BinaryOperation" flags="nn" index="56pJg">
         <child id="1176906787974" name="rightExpression" index="576Qk" />
       </concept>
+      <concept id="540871147943773365" name="jetbrains.mps.baseLanguage.collections.structure.SingleArgumentSequenceOperation" flags="nn" index="25WWJ4">
+        <child id="540871147943773366" name="argument" index="25WWJ7" />
+      </concept>
       <concept id="1176923520476" name="jetbrains.mps.baseLanguage.collections.structure.ExcludeOperation" flags="nn" index="66VNe" />
       <concept id="1151688443754" name="jetbrains.mps.baseLanguage.collections.structure.ListType" flags="in" index="_YKpA">
         <child id="1151688676805" name="elementType" index="_ZDj9" />
@@ -144,8 +151,20 @@
       <concept id="1151689724996" name="jetbrains.mps.baseLanguage.collections.structure.SequenceType" flags="in" index="A3Dl8">
         <child id="1151689745422" name="elementType" index="A3Ik2" />
       </concept>
-      <concept id="1151702311717" name="jetbrains.mps.baseLanguage.collections.structure.ToListOperation" flags="nn" index="ANE8D" />
+      <concept id="1153943597977" name="jetbrains.mps.baseLanguage.collections.structure.ForEachStatement" flags="nn" index="2Gpval">
+        <child id="1153944400369" name="variable" index="2Gsz3X" />
+        <child id="1153944424730" name="inputSequence" index="2GsD0m" />
+      </concept>
+      <concept id="1153944193378" name="jetbrains.mps.baseLanguage.collections.structure.ForEachVariable" flags="nr" index="2GrKxI" />
+      <concept id="1153944233411" name="jetbrains.mps.baseLanguage.collections.structure.ForEachVariableReference" flags="nn" index="2GrUjf">
+        <reference id="1153944258490" name="variable" index="2Gs0qQ" />
+      </concept>
+      <concept id="1237721394592" name="jetbrains.mps.baseLanguage.collections.structure.AbstractContainerCreator" flags="nn" index="HWqM0">
+        <child id="1237721435807" name="elementType" index="HW$YZ" />
+      </concept>
+      <concept id="1227008614712" name="jetbrains.mps.baseLanguage.collections.structure.LinkedListCreator" flags="nn" index="2Jqq0_" />
       <concept id="1203518072036" name="jetbrains.mps.baseLanguage.collections.structure.SmartClosureParameterDeclaration" flags="ig" index="Rh6nW" />
+      <concept id="1160612413312" name="jetbrains.mps.baseLanguage.collections.structure.AddElementOperation" flags="nn" index="TSZUe" />
       <concept id="1201792049884" name="jetbrains.mps.baseLanguage.collections.structure.TranslateOperation" flags="nn" index="3goQfb" />
       <concept id="1202120902084" name="jetbrains.mps.baseLanguage.collections.structure.WhereOperation" flags="nn" index="3zZkjj" />
       <concept id="1202128969694" name="jetbrains.mps.baseLanguage.collections.structure.SelectOperation" flags="nn" index="3$u5V9" />
@@ -155,6 +174,31 @@
     <property role="TrG5h" value="test_modules_not_part_of_build_script" />
     <node concept="1MIXq2" id="6wojtGU5kGj" role="14J5yK">
       <node concept="3clFbS" id="6wojtGU5kGk" role="2VODD2">
+        <node concept="3cpWs8" id="4XPt_HaUL0q" role="3cqZAp">
+          <node concept="3cpWsn" id="4XPt_HaUL0t" role="3cpWs9">
+            <property role="TrG5h" value="res" />
+            <node concept="_YKpA" id="3bllPAaPI5a" role="1tU5fm">
+              <node concept="3uibUv" id="3bllPAaPI5b" role="_ZDj9">
+                <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                <node concept="17QB3L" id="3bllPAaPI5c" role="11_B2D" />
+                <node concept="3uibUv" id="4XPt_HaUTTl" role="11_B2D">
+                  <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
+                </node>
+              </node>
+            </node>
+            <node concept="2ShNRf" id="4XPt_HaUNkp" role="33vP2m">
+              <node concept="2Jqq0_" id="4XPt_HaUO4e" role="2ShVmc">
+                <node concept="3uibUv" id="4XPt_HaUOOL" role="HW$YZ">
+                  <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                  <node concept="17QB3L" id="4XPt_HaUQGh" role="11_B2D" />
+                  <node concept="3uibUv" id="4XPt_HaURvP" role="11_B2D">
+                    <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
         <node concept="3cpWs8" id="6wojtGU69QD" role="3cqZAp">
           <node concept="3cpWsn" id="6wojtGU69QE" role="3cpWs9">
             <property role="TrG5h" value="modules" />
@@ -171,6 +215,7 @@
             </node>
           </node>
         </node>
+        <node concept="3clFbH" id="4XPt_HaUHFz" role="3cqZAp" />
         <node concept="3cpWs8" id="6wojtGUkV5_" role="3cqZAp">
           <node concept="3cpWsn" id="6wojtGUkV5A" role="3cpWs9">
             <property role="TrG5h" value="testModules" />
@@ -417,39 +462,39 @@
             </node>
           </node>
         </node>
-        <node concept="3cpWs6" id="6wojtGU6QCC" role="3cqZAp">
-          <node concept="2OqwBi" id="6wojtGU6QCE" role="3cqZAk">
-            <node concept="2OqwBi" id="4I5DMJFtpRZ" role="2Oq$k0">
-              <node concept="37vLTw" id="6wojtGUoAQM" role="2Oq$k0">
-                <ref role="3cqZAo" node="6wojtGUoAQH" resolve="missingTestModules" />
-              </node>
-              <node concept="3$u5V9" id="4I5DMJFtqRM" role="2OqNvi">
-                <node concept="1bVj0M" id="4I5DMJFtqRO" role="23t8la">
-                  <node concept="3clFbS" id="4I5DMJFtqRP" role="1bW5cS">
-                    <node concept="3clFbF" id="4I5DMJFtrDx" role="3cqZAp">
-                      <node concept="3cpWs3" id="4I5DMJFtvAN" role="3clFbG">
-                        <node concept="Xl_RD" id="4I5DMJFtvAX" role="3uHU7w">
-                          <property role="Xl_RC" value="' is not part of a build script" />
-                        </node>
-                        <node concept="3cpWs3" id="4I5DMJFttWX" role="3uHU7B">
-                          <node concept="Xl_RD" id="4I5DMJFtrDw" role="3uHU7B">
-                            <property role="Xl_RC" value="Module '" />
-                          </node>
-                          <node concept="37vLTw" id="4I5DMJFtusq" role="3uHU7w">
-                            <ref role="3cqZAo" node="4I5DMJFtqRQ" resolve="it" />
-                          </node>
-                        </node>
+        <node concept="2Gpval" id="4XPt_HaUV9D" role="3cqZAp">
+          <node concept="2GrKxI" id="4XPt_HaUV9F" role="2Gsz3X">
+            <property role="TrG5h" value="module" />
+          </node>
+          <node concept="37vLTw" id="4XPt_HaUZOb" role="2GsD0m">
+            <ref role="3cqZAo" node="6wojtGUoAQH" resolve="missingTestModules" />
+          </node>
+          <node concept="3clFbS" id="4XPt_HaUV9J" role="2LFqv$">
+            <node concept="3clFbF" id="4XPt_HaV0n8" role="3cqZAp">
+              <node concept="2OqwBi" id="4XPt_HaV55l" role="3clFbG">
+                <node concept="37vLTw" id="4XPt_HaV0n7" role="2Oq$k0">
+                  <ref role="3cqZAo" node="4XPt_HaUL0t" resolve="res" />
+                </node>
+                <node concept="TSZUe" id="4XPt_HaV95X" role="2OqNvi">
+                  <node concept="2ShNRf" id="4XPt_HaV9Of" role="25WWJ7">
+                    <node concept="1pGfFk" id="4XPt_HaVaKJ" role="2ShVmc">
+                      <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                      <node concept="Xl_RD" id="4XPt_HaVf6g" role="37wK5m">
+                        <property role="Xl_RC" value="Module is not part of a build script" />
+                      </node>
+                      <node concept="2GrUjf" id="4XPt_HaViTF" role="37wK5m">
+                        <ref role="2Gs0qQ" node="4XPt_HaUV9F" resolve="module" />
                       </node>
                     </node>
                   </node>
-                  <node concept="Rh6nW" id="4I5DMJFtqRQ" role="1bW2Oz">
-                    <property role="TrG5h" value="it" />
-                    <node concept="2jxLKc" id="4I5DMJFtqRR" role="1tU5fm" />
-                  </node>
                 </node>
               </node>
             </node>
-            <node concept="ANE8D" id="6wojtGU6QDg" role="2OqNvi" />
+          </node>
+        </node>
+        <node concept="3cpWs6" id="4XPt_HaV0UW" role="3cqZAp">
+          <node concept="37vLTw" id="4XPt_HaV0Wy" role="3cqZAk">
+            <ref role="3cqZAo" node="4XPt_HaUL0t" resolve="res" />
           </node>
         </node>
       </node>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.typesystem_aspect.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.typesystem_aspect.mps
index fd881b0e..c7a126ab 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.typesystem_aspect.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.typesystem_aspect.mps
@@ -14,12 +14,10 @@
     <import index="zn9m" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.util(MPS.IDEA/)" />
     <import index="tpd4" ref="r:00000000-0000-4000-0000-011c895902b4(jetbrains.mps.lang.typesystem.structure)" />
     <import index="tp5g" ref="r:00000000-0000-4000-0000-011c89590388(jetbrains.mps.lang.test.structure)" />
-    <import index="c17a" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.language(MPS.OpenAPI/)" implicit="true" />
     <import index="tpee" ref="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" implicit="true" />
   </imports>
   <registry>
     <language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
-      <concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
       <concept id="1154032098014" name="jetbrains.mps.baseLanguage.structure.AbstractLoopStatement" flags="nn" index="2LF5Ji">
         <child id="1154032183016" name="body" index="2LFqv$" />
       </concept>
@@ -60,7 +58,6 @@
       <concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
         <child id="1068581517665" name="statement" index="3cqZAp" />
       </concept>
-      <concept id="1068581242875" name="jetbrains.mps.baseLanguage.structure.PlusExpression" flags="nn" index="3cpWs3" />
       <concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
         <child id="1068581517676" name="expression" index="3cqZAk" />
       </concept>
@@ -77,10 +74,6 @@
         <reference id="1107535924139" name="classifier" index="3uigEE" />
         <child id="1109201940907" name="parameter" index="11_B2D" />
       </concept>
-      <concept id="1081773326031" name="jetbrains.mps.baseLanguage.structure.BinaryOperation" flags="nn" index="3uHJSO">
-        <child id="1081773367579" name="rightExpression" index="3uHU7w" />
-        <child id="1081773367580" name="leftExpression" index="3uHU7B" />
-      </concept>
       <concept id="6329021646629104954" name="jetbrains.mps.baseLanguage.structure.SingleLineComment" flags="nn" index="3SKdUt">
         <child id="8356039341262087992" name="line" index="1aUNEU" />
       </concept>
@@ -113,13 +106,9 @@
       <concept id="1177026924588" name="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" flags="nn" index="chp4Y">
         <reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
       </concept>
-      <concept id="7453996997717780434" name="jetbrains.mps.lang.smodel.structure.Node_GetSConceptOperation" flags="nn" index="2yIwOk" />
       <concept id="1138055754698" name="jetbrains.mps.lang.smodel.structure.SNodeType" flags="in" index="3Tqbb2">
         <reference id="1138405853777" name="concept" index="ehGHo" />
       </concept>
-      <concept id="1138056022639" name="jetbrains.mps.lang.smodel.structure.SPropertyAccess" flags="nn" index="3TrcHB">
-        <reference id="1138056395725" name="property" index="3TsBF5" />
-      </concept>
       <concept id="1138056143562" name="jetbrains.mps.lang.smodel.structure.SLinkAccess" flags="nn" index="3TrEf2">
         <reference id="1138056516764" name="link" index="3Tt5mk" />
       </concept>
@@ -264,41 +253,8 @@
               <node concept="3cpWsn" id="2zdrQh7uD_N" role="3cpWs9">
                 <property role="TrG5h" value="msg" />
                 <node concept="17QB3L" id="2zdrQh7uD_O" role="1tU5fm" />
-                <node concept="3cpWs3" id="2zdrQh7uD_P" role="33vP2m">
-                  <node concept="3cpWs3" id="2zdrQh7uD_Q" role="3uHU7B">
-                    <node concept="3cpWs3" id="2zdrQh7uD_R" role="3uHU7B">
-                      <node concept="Xl_RD" id="2zdrQh7uD_S" role="3uHU7w">
-                        <property role="Xl_RC" value=" of concept '" />
-                      </node>
-                      <node concept="3cpWs3" id="2zdrQh7uD_T" role="3uHU7B">
-                        <node concept="Xl_RD" id="2zdrQh7uD_U" role="3uHU7B">
-                          <property role="Xl_RC" value="Checking rule " />
-                        </node>
-                        <node concept="2OqwBi" id="2zdrQh7uD_V" role="3uHU7w">
-                          <node concept="37vLTw" id="2zdrQh7uGRr" role="2Oq$k0">
-                            <ref role="3cqZAo" node="2zdrQh7uFfS" resolve="checkingRule" />
-                          </node>
-                          <node concept="3TrcHB" id="2zdrQh7uD_X" role="2OqNvi">
-                            <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                          </node>
-                        </node>
-                      </node>
-                    </node>
-                    <node concept="2OqwBi" id="2zdrQh7uD_Y" role="3uHU7w">
-                      <node concept="2OqwBi" id="2zdrQh7uD_Z" role="2Oq$k0">
-                        <node concept="37vLTw" id="2zdrQh7uGKK" role="2Oq$k0">
-                          <ref role="3cqZAo" node="2zdrQh7uFfS" resolve="checkingRule" />
-                        </node>
-                        <node concept="2yIwOk" id="2zdrQh7uDA1" role="2OqNvi" />
-                      </node>
-                      <node concept="liA8E" id="2zdrQh7uDA2" role="2OqNvi">
-                        <ref role="37wK5l" to="c17a:~SAbstractConcept.getName()" resolve="getName" />
-                      </node>
-                    </node>
-                  </node>
-                  <node concept="Xl_RD" id="2zdrQh7uDA3" role="3uHU7w">
-                    <property role="Xl_RC" value="' is empty" />
-                  </node>
+                <node concept="Xl_RD" id="4XPt_HaVlUE" role="33vP2m">
+                  <property role="Xl_RC" value="Checking rule is empty" />
                 </node>
               </node>
             </node>
@@ -395,11 +351,6 @@
         </node>
       </node>
     </node>
-    <node concept="3dgnlM" id="5ILDA6EUYgi" role="3dgnlQ">
-      <property role="3dgnlN" value="Class for linter 'not_tested' couldn't be found. The model is probably not generated." />
-      <property role="3qxsY3" value="6607245066738849851" />
-      <property role="3qxsSb" value="r:59e2876f-999a-4af1-8c54-345ff89e1fb6" />
-    </node>
     <node concept="1MIXq2" id="5ILDA6EXlkB" role="14J5yK">
       <node concept="3clFbS" id="5ILDA6EXlkC" role="2VODD2">
         <node concept="3SKdUt" id="5ILDA6EXs9$" role="3cqZAp">
@@ -560,6 +511,11 @@
         </node>
       </node>
     </node>
+    <node concept="3dgnlM" id="5ILDA6EUYgi" role="3dgnlQ">
+      <property role="3dgnlN" value="Class for linter 'not_tested' couldn't be found. The model is probably not generated." />
+      <property role="3qxsY3" value="6607245066738849851" />
+      <property role="3qxsSb" value="r:59e2876f-999a-4af1-8c54-345ff89e1fb6" />
+    </node>
   </node>
 </model>
 

From d14ec373c053b23f65f04108c5fab69aaa67298f Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Mon, 23 Sep 2024 11:03:28 +0200
Subject: [PATCH 15/42] mpsqa.lint: show a better error message when an
 exception occurs

---
 .../models/org.mpsqa.lint.generic.typesystem.mps       | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
index ee89926c..3acb038b 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
@@ -46,6 +46,7 @@
     <import index="tp25" ref="r:00000000-0000-4000-0000-011c89590301(jetbrains.mps.lang.smodel.structure)" />
     <import index="xlb7" ref="r:cf42fd0a-68d2-493b-8b77-961658617704(jetbrains.mps.lang.modelapi.behavior)" />
     <import index="4o98" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.core.platform(MPS.Core/)" />
+    <import index="9w4s" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.util(MPS.IDEA/)" />
     <import index="wyuk" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.components(MPS.Core/)" implicit="true" />
     <import index="tpcu" ref="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" implicit="true" />
   </imports>
@@ -2951,13 +2952,12 @@
                                   </node>
                                   <node concept="liA8E" id="6EiPrTPFOXT" role="2OqNvi">
                                     <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
-                                    <node concept="2OqwBi" id="6EiPrTPFS8h" role="37wK5m">
-                                      <node concept="37vLTw" id="6EiPrTPFRso" role="2Oq$k0">
+                                    <node concept="2YIFZM" id="4XPt_HaWEc$" role="37wK5m">
+                                      <ref role="37wK5l" to="9w4s:~ExceptionUtil.getMessage(java.lang.Throwable)" resolve="getMessage" />
+                                      <ref role="1Pybhc" to="9w4s:~ExceptionUtil" resolve="ExceptionUtil" />
+                                      <node concept="37vLTw" id="4XPt_HaWFKU" role="37wK5m">
                                         <ref role="3cqZAo" node="fofa_o7AcY" resolve="ex" />
                                       </node>
-                                      <node concept="liA8E" id="6EiPrTPFSMa" role="2OqNvi">
-                                        <ref role="37wK5l" to="wyt6:~Throwable.getMessage()" resolve="getMessage" />
-                                      </node>
                                     </node>
                                   </node>
                                 </node>

From 9fc1eec07a70630a2bb3a3d46d29007f979e7847 Mon Sep 17 00:00:00 2001
From: Daniel Ratiu <ratiud@googlemail.com>
Date: Mon, 23 Sep 2024 15:40:43 +0200
Subject: [PATCH 16/42] lint.generic.editor: mini improvement of ResultEntity

---
 .../models/org.mpsqa.lint.generic.editor.mps  | 184 +++++++++++-------
 1 file changed, 110 insertions(+), 74 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
index 1b6a639f..2082f0dd 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
@@ -330,6 +330,7 @@
       </concept>
     </language>
     <language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
+      <concept id="1179168000618" name="jetbrains.mps.lang.smodel.structure.Node_GetIndexInParentOperation" flags="nn" index="2bSWHS" />
       <concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
       <concept id="1138757581985" name="jetbrains.mps.lang.smodel.structure.Link_SetNewChildOperation" flags="nn" index="zfrQC" />
       <concept id="1143224066846" name="jetbrains.mps.lang.smodel.structure.Node_InsertNextSiblingOperation" flags="nn" index="HtI8k">
@@ -1090,81 +1091,115 @@
     <property role="3GE5qa" value="previous_results" />
     <ref role="1XX52x" to="a1af:6gY6GEDvQYS" resolve="ResultEntry" />
     <node concept="3EZMnI" id="2I_DQhHcYH" role="2wV5jI">
-      <node concept="1QoScp" id="4XPt_Hatexq" role="3EZMnx">
-        <property role="1QpmdY" value="true" />
-        <node concept="pkWqt" id="4XPt_Hatext" role="3e4ffs">
-          <node concept="3clFbS" id="4XPt_Hatexv" role="2VODD2">
-            <node concept="3clFbF" id="4XPt_Hatf3y" role="3cqZAp">
-              <node concept="2OqwBi" id="2I_DQhGtI9" role="3clFbG">
-                <node concept="2OqwBi" id="2I_DQhGtfn" role="2Oq$k0">
-                  <node concept="pncrf" id="2I_DQhGtfo" role="2Oq$k0" />
-                  <node concept="2qgKlT" id="2I_DQhGtfp" role="2OqNvi">
-                    <ref role="37wK5l" to="b659:2I_DQhGejd" resolve="getNode" />
-                    <node concept="2OqwBi" id="2I_DQhGtfq" role="37wK5m">
-                      <node concept="1Q80Hx" id="2I_DQhGtfr" role="2Oq$k0" />
-                      <node concept="liA8E" id="2I_DQhGtfs" role="2OqNvi">
-                        <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+      <node concept="3EZMnI" id="3V$n2gBAOzJ" role="3EZMnx">
+        <node concept="2iRfu4" id="3V$n2gBAOzK" role="2iSdaV" />
+        <node concept="1HlG4h" id="3V$n2gBAONt" role="3EZMnx">
+          <node concept="1HfYo3" id="3V$n2gBAONv" role="1HlULh">
+            <node concept="3TQlhw" id="3V$n2gBAONx" role="1Hhtcw">
+              <node concept="3clFbS" id="3V$n2gBAONz" role="2VODD2">
+                <node concept="3clFbF" id="3V$n2gBAOUH" role="3cqZAp">
+                  <node concept="2YIFZM" id="3V$n2gBAOWB" role="3clFbG">
+                    <ref role="37wK5l" to="wyt6:~String.format(java.lang.String,java.lang.Object...)" resolve="format" />
+                    <ref role="1Pybhc" to="wyt6:~String" resolve="String" />
+                    <node concept="Xl_RD" id="3V$n2gBAOWD" role="37wK5m">
+                      <property role="Xl_RC" value="%04d" />
+                    </node>
+                    <node concept="1eOMI4" id="3V$n2gBAPjH" role="37wK5m">
+                      <node concept="3cpWs3" id="3V$n2gBARib" role="1eOMHV">
+                        <node concept="3cmrfG" id="3V$n2gBARif" role="3uHU7w">
+                          <property role="3cmrfH" value="1" />
+                        </node>
+                        <node concept="2OqwBi" id="3V$n2gBAPIb" role="3uHU7B">
+                          <node concept="pncrf" id="3V$n2gBAPqK" role="2Oq$k0" />
+                          <node concept="2bSWHS" id="3V$n2gBAQ6L" role="2OqNvi" />
+                        </node>
                       </node>
                     </node>
                   </node>
                 </node>
-                <node concept="3x8VRR" id="2I_DQhGu96" role="2OqNvi" />
               </node>
             </node>
           </node>
+          <node concept="VechU" id="3V$n2gBB9K$" role="3F10Kt">
+            <property role="Vb096" value="fLwANPu/blue" />
+          </node>
         </node>
-        <node concept="3F0ifn" id="4XPt_Hatf70" role="1QoVPY">
-          <property role="3F0ifm" value="unknown location" />
-        </node>
-        <node concept="3EZMnI" id="4WO8F5MTflp" role="1QoS34">
-          <node concept="2iRfu4" id="4WO8F5MTflq" role="2iSdaV" />
-          <node concept="3F0ifn" id="2I_DQhHf0o" role="3EZMnx">
-            <property role="3F0ifm" value="model" />
+        <node concept="1QoScp" id="4XPt_Hatexq" role="3EZMnx">
+          <property role="1QpmdY" value="true" />
+          <node concept="pkWqt" id="4XPt_Hatext" role="3e4ffs">
+            <node concept="3clFbS" id="4XPt_Hatexv" role="2VODD2">
+              <node concept="3clFbF" id="4XPt_Hatf3y" role="3cqZAp">
+                <node concept="2OqwBi" id="2I_DQhGtI9" role="3clFbG">
+                  <node concept="2OqwBi" id="2I_DQhGtfn" role="2Oq$k0">
+                    <node concept="pncrf" id="2I_DQhGtfo" role="2Oq$k0" />
+                    <node concept="2qgKlT" id="2I_DQhGtfp" role="2OqNvi">
+                      <ref role="37wK5l" to="b659:2I_DQhGejd" resolve="getNode" />
+                      <node concept="2OqwBi" id="2I_DQhGtfq" role="37wK5m">
+                        <node concept="1Q80Hx" id="2I_DQhGtfr" role="2Oq$k0" />
+                        <node concept="liA8E" id="2I_DQhGtfs" role="2OqNvi">
+                          <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                  <node concept="3x8VRR" id="2I_DQhGu96" role="2OqNvi" />
+                </node>
+              </node>
+            </node>
+          </node>
+          <node concept="3F0ifn" id="4XPt_Hatf70" role="1QoVPY">
+            <property role="3F0ifm" value="unknown location" />
           </node>
-          <node concept="1HlG4h" id="2I_DQhHf7x" role="3EZMnx">
-            <node concept="1HfYo3" id="2I_DQhHf7y" role="1HlULh">
-              <node concept="3TQlhw" id="2I_DQhHf7z" role="1Hhtcw">
-                <node concept="3clFbS" id="2I_DQhHf7$" role="2VODD2">
-                  <node concept="3clFbF" id="2I_DQhHf7_" role="3cqZAp">
-                    <node concept="2OqwBi" id="2I_DQhHf7A" role="3clFbG">
-                      <node concept="2OqwBi" id="2I_DQhHf7B" role="2Oq$k0">
-                        <node concept="2OqwBi" id="2I_DQhHf7C" role="2Oq$k0">
-                          <node concept="pncrf" id="2I_DQhHf7D" role="2Oq$k0" />
-                          <node concept="2qgKlT" id="2I_DQhHf7E" role="2OqNvi">
-                            <ref role="37wK5l" to="b659:2I_DQhGejd" resolve="getNode" />
-                            <node concept="2OqwBi" id="2I_DQhHf7F" role="37wK5m">
-                              <node concept="1Q80Hx" id="2I_DQhHf7G" role="2Oq$k0" />
-                              <node concept="liA8E" id="2I_DQhHf7H" role="2OqNvi">
-                                <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+          <node concept="3EZMnI" id="4WO8F5MTflp" role="1QoS34">
+            <node concept="2iRfu4" id="4WO8F5MTflq" role="2iSdaV" />
+            <node concept="3F0ifn" id="2I_DQhHf0o" role="3EZMnx">
+              <property role="3F0ifm" value="model" />
+            </node>
+            <node concept="1HlG4h" id="2I_DQhHf7x" role="3EZMnx">
+              <node concept="1HfYo3" id="2I_DQhHf7y" role="1HlULh">
+                <node concept="3TQlhw" id="2I_DQhHf7z" role="1Hhtcw">
+                  <node concept="3clFbS" id="2I_DQhHf7$" role="2VODD2">
+                    <node concept="3clFbF" id="2I_DQhHf7_" role="3cqZAp">
+                      <node concept="2OqwBi" id="2I_DQhHf7A" role="3clFbG">
+                        <node concept="2OqwBi" id="2I_DQhHf7B" role="2Oq$k0">
+                          <node concept="2OqwBi" id="2I_DQhHf7C" role="2Oq$k0">
+                            <node concept="pncrf" id="2I_DQhHf7D" role="2Oq$k0" />
+                            <node concept="2qgKlT" id="2I_DQhHf7E" role="2OqNvi">
+                              <ref role="37wK5l" to="b659:2I_DQhGejd" resolve="getNode" />
+                              <node concept="2OqwBi" id="2I_DQhHf7F" role="37wK5m">
+                                <node concept="1Q80Hx" id="2I_DQhHf7G" role="2Oq$k0" />
+                                <node concept="liA8E" id="2I_DQhHf7H" role="2OqNvi">
+                                  <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+                                </node>
                               </node>
                             </node>
                           </node>
+                          <node concept="I4A8Y" id="2I_DQhHf7I" role="2OqNvi" />
                         </node>
-                        <node concept="I4A8Y" id="2I_DQhHf7I" role="2OqNvi" />
+                        <node concept="LkI2h" id="2I_DQhHf7J" role="2OqNvi" />
                       </node>
-                      <node concept="LkI2h" id="2I_DQhHf7J" role="2OqNvi" />
                     </node>
                   </node>
                 </node>
               </node>
             </node>
-          </node>
-          <node concept="3F0ifn" id="4XPt_Hap_xJ" role="3EZMnx">
-            <property role="3F0ifm" value="with node" />
-          </node>
-          <node concept="1HlG4h" id="4XPt_Hap_$p" role="3EZMnx">
-            <node concept="3k4GqR" id="4XPt_HaqMFn" role="3F10Kt">
-              <node concept="3k4GqP" id="4XPt_HaqMFo" role="3k4GqO">
-                <node concept="3clFbS" id="4XPt_HaqMFp" role="2VODD2">
-                  <node concept="3clFbF" id="4XPt_HaqML8" role="3cqZAp">
-                    <node concept="2OqwBi" id="4XPt_HaqMWS" role="3clFbG">
-                      <node concept="pncrf" id="4XPt_HaqML7" role="2Oq$k0" />
-                      <node concept="2qgKlT" id="4XPt_HaqN7X" role="2OqNvi">
-                        <ref role="37wK5l" to="b659:2I_DQhGejd" resolve="getNode" />
-                        <node concept="2OqwBi" id="4XPt_HaqNHU" role="37wK5m">
-                          <node concept="1Q80Hx" id="4XPt_HaqN$r" role="2Oq$k0" />
-                          <node concept="liA8E" id="4XPt_HaqO3k" role="2OqNvi">
-                            <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+            <node concept="3F0ifn" id="4XPt_Hap_xJ" role="3EZMnx">
+              <property role="3F0ifm" value="with node" />
+            </node>
+            <node concept="1HlG4h" id="4XPt_Hap_$p" role="3EZMnx">
+              <node concept="3k4GqR" id="4XPt_HaqMFn" role="3F10Kt">
+                <node concept="3k4GqP" id="4XPt_HaqMFo" role="3k4GqO">
+                  <node concept="3clFbS" id="4XPt_HaqMFp" role="2VODD2">
+                    <node concept="3clFbF" id="4XPt_HaqML8" role="3cqZAp">
+                      <node concept="2OqwBi" id="4XPt_HaqMWS" role="3clFbG">
+                        <node concept="pncrf" id="4XPt_HaqML7" role="2Oq$k0" />
+                        <node concept="2qgKlT" id="4XPt_HaqN7X" role="2OqNvi">
+                          <ref role="37wK5l" to="b659:2I_DQhGejd" resolve="getNode" />
+                          <node concept="2OqwBi" id="4XPt_HaqNHU" role="37wK5m">
+                            <node concept="1Q80Hx" id="4XPt_HaqN$r" role="2Oq$k0" />
+                            <node concept="liA8E" id="4XPt_HaqO3k" role="2OqNvi">
+                              <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+                            </node>
                           </node>
                         </node>
                       </node>
@@ -1172,28 +1207,28 @@
                   </node>
                 </node>
               </node>
-            </node>
-            <node concept="1HfYo3" id="4XPt_Hap_$q" role="1HlULh">
-              <node concept="3TQlhw" id="4XPt_Hap_$r" role="1Hhtcw">
-                <node concept="3clFbS" id="4XPt_Hap_$s" role="2VODD2">
-                  <node concept="3clFbF" id="4XPt_Hap_$t" role="3cqZAp">
-                    <node concept="2OqwBi" id="4XPt_Hap_$u" role="3clFbG">
-                      <node concept="2JrnkZ" id="4XPt_Hap_$v" role="2Oq$k0">
-                        <node concept="2OqwBi" id="4XPt_Hap_$w" role="2JrQYb">
-                          <node concept="pncrf" id="4XPt_Hap_$x" role="2Oq$k0" />
-                          <node concept="2qgKlT" id="4XPt_Hap_$y" role="2OqNvi">
-                            <ref role="37wK5l" to="b659:2I_DQhGejd" resolve="getNode" />
-                            <node concept="2OqwBi" id="4XPt_Hap_$z" role="37wK5m">
-                              <node concept="1Q80Hx" id="4XPt_Hap_$$" role="2Oq$k0" />
-                              <node concept="liA8E" id="4XPt_Hap_$_" role="2OqNvi">
-                                <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+              <node concept="1HfYo3" id="4XPt_Hap_$q" role="1HlULh">
+                <node concept="3TQlhw" id="4XPt_Hap_$r" role="1Hhtcw">
+                  <node concept="3clFbS" id="4XPt_Hap_$s" role="2VODD2">
+                    <node concept="3clFbF" id="4XPt_Hap_$t" role="3cqZAp">
+                      <node concept="2OqwBi" id="4XPt_Hap_$u" role="3clFbG">
+                        <node concept="2JrnkZ" id="4XPt_Hap_$v" role="2Oq$k0">
+                          <node concept="2OqwBi" id="4XPt_Hap_$w" role="2JrQYb">
+                            <node concept="pncrf" id="4XPt_Hap_$x" role="2Oq$k0" />
+                            <node concept="2qgKlT" id="4XPt_Hap_$y" role="2OqNvi">
+                              <ref role="37wK5l" to="b659:2I_DQhGejd" resolve="getNode" />
+                              <node concept="2OqwBi" id="4XPt_Hap_$z" role="37wK5m">
+                                <node concept="1Q80Hx" id="4XPt_Hap_$$" role="2Oq$k0" />
+                                <node concept="liA8E" id="4XPt_Hap_$_" role="2OqNvi">
+                                  <ref role="37wK5l" to="cj4x:~EditorContext.getRepository()" resolve="getRepository" />
+                                </node>
                               </node>
                             </node>
                           </node>
                         </node>
-                      </node>
-                      <node concept="liA8E" id="4XPt_HaQvt0" role="2OqNvi">
-                        <ref role="37wK5l" to="mhbf:~SNode.getPresentation()" resolve="getPresentation" />
+                        <node concept="liA8E" id="4XPt_HaQvt0" role="2OqNvi">
+                          <ref role="37wK5l" to="mhbf:~SNode.getPresentation()" resolve="getPresentation" />
+                        </node>
                       </node>
                     </node>
                   </node>
@@ -1205,6 +1240,7 @@
       </node>
       <node concept="3EZMnI" id="4XPt_HaubZN" role="3EZMnx">
         <node concept="2iRfu4" id="4XPt_HaubZO" role="2iSdaV" />
+        <node concept="3XFhqQ" id="3V$n2gBB9HK" role="3EZMnx" />
         <node concept="3F0ifn" id="4XPt_HaubSP" role="3EZMnx">
           <property role="3F0ifm" value="location" />
         </node>

From 3588d9474e68ab9494ce61520eb856513558b72a Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Mon, 23 Sep 2024 17:02:16 +0200
Subject: [PATCH 17/42] mpsqa: fix new violations method

---
 .../org.mpsqa.lint.generic.behavior.mps       | 127 +++++++++++++-----
 1 file changed, 92 insertions(+), 35 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
index 079d9287..2c45defe 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
@@ -1214,42 +1214,15 @@
                     <node concept="3zZkjj" id="5vskli_kHn2" role="2OqNvi">
                       <node concept="1bVj0M" id="5vskli_kHn3" role="23t8la">
                         <node concept="3clFbS" id="5vskli_kHn4" role="1bW5cS">
-                          <node concept="3clFbF" id="5vskli_kHn5" role="3cqZAp">
-                            <node concept="1Wc70l" id="5vskli_kHn6" role="3clFbG">
-                              <node concept="2YIFZM" id="5vskli_kHn7" role="3uHU7w">
-                                <ref role="37wK5l" node="78RogMCIawZ" resolve="sameNode" />
-                                <ref role="1Pybhc" node="78RogMCHKPV" resolve="Node2ID" />
-                                <node concept="2OqwBi" id="5vskli_kHn8" role="37wK5m">
-                                  <node concept="37vLTw" id="5vskli_kHn9" role="2Oq$k0">
-                                    <ref role="3cqZAo" node="5vskli_kHnk" resolve="it" />
-                                  </node>
-                                  <node concept="2sxana" id="3ghOW5HSeom" role="2OqNvi">
-                                    <ref role="2sxfKC" to="qqy:3ghOW5HS78o" resolve="node" />
-                                  </node>
-                                </node>
-                                <node concept="2GrUjf" id="5vskli_kHnb" role="37wK5m">
-                                  <ref role="2Gs0qQ" node="6gY6GEDxCpt" resolve="v" />
-                                </node>
+                          <node concept="3clFbF" id="106MO2l5APC" role="3cqZAp">
+                            <node concept="2OqwBi" id="106MO2l5BKQ" role="3clFbG">
+                              <node concept="2GrUjf" id="106MO2l5APA" role="2Oq$k0">
+                                <ref role="2Gs0qQ" node="6gY6GEDxCpt" resolve="v" />
                               </node>
-                              <node concept="2OqwBi" id="5vskli_kHnc" role="3uHU7B">
-                                <node concept="2OqwBi" id="5vskli_kHnd" role="2Oq$k0">
-                                  <node concept="37vLTw" id="5vskli_kHne" role="2Oq$k0">
-                                    <ref role="3cqZAo" node="5vskli_kHnk" resolve="it" />
-                                  </node>
-                                  <node concept="2sxana" id="19GnlsUlTxc" role="2OqNvi">
-                                    <ref role="2sxfKC" to="qqy:19GnlsUkKsI" resolve="message" />
-                                  </node>
-                                </node>
-                                <node concept="liA8E" id="5vskli_kHng" role="2OqNvi">
-                                  <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
-                                  <node concept="2OqwBi" id="5vskli_kHnh" role="37wK5m">
-                                    <node concept="2GrUjf" id="5vskli_kHni" role="2Oq$k0">
-                                      <ref role="2Gs0qQ" node="6gY6GEDxCpt" resolve="v" />
-                                    </node>
-                                    <node concept="3TrcHB" id="5vskli_kHnj" role="2OqNvi">
-                                      <ref role="3TsBF5" to="a1af:6gY6GEDvQYT" resolve="result" />
-                                    </node>
-                                  </node>
+                              <node concept="2qgKlT" id="106MO2l5G9w" role="2OqNvi">
+                                <ref role="37wK5l" node="106MO2l56WG" resolve="equals" />
+                                <node concept="37vLTw" id="106MO2l5GyZ" role="37wK5m">
+                                  <ref role="3cqZAo" node="5vskli_kHnk" resolve="it" />
                                 </node>
                               </node>
                             </node>
@@ -2499,6 +2472,90 @@
         </node>
       </node>
     </node>
+    <node concept="13i0hz" id="106MO2l56WG" role="13h7CS">
+      <property role="TrG5h" value="equals" />
+      <node concept="3Tm1VV" id="106MO2l56WH" role="1B3o_S" />
+      <node concept="10P_77" id="106MO2l57js" role="3clF45" />
+      <node concept="3clFbS" id="106MO2l56WJ" role="3clF47">
+        <node concept="3clFbF" id="106MO2l59$6" role="3cqZAp">
+          <node concept="1Wc70l" id="106MO2l5hf1" role="3clFbG">
+            <node concept="17R0WA" id="106MO2l5m9l" role="3uHU7w">
+              <node concept="2OqwBi" id="106MO2l5nJK" role="3uHU7w">
+                <node concept="2OqwBi" id="106MO2l5n4F" role="2Oq$k0">
+                  <node concept="37vLTw" id="106MO2l5mgN" role="2Oq$k0">
+                    <ref role="3cqZAo" node="106MO2l57jJ" resolve="result" />
+                  </node>
+                  <node concept="2sxana" id="106MO2l5nC8" role="2OqNvi">
+                    <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
+                  </node>
+                </node>
+                <node concept="liA8E" id="106MO2l5nP_" role="2OqNvi">
+                  <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
+                </node>
+              </node>
+              <node concept="2OqwBi" id="106MO2l5lAt" role="3uHU7B">
+                <node concept="13iPFW" id="106MO2l5l$w" role="2Oq$k0" />
+                <node concept="3TrcHB" id="106MO2l5lE1" role="2OqNvi">
+                  <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                </node>
+              </node>
+            </node>
+            <node concept="1Wc70l" id="106MO2l5cSW" role="3uHU7B">
+              <node concept="17R0WA" id="106MO2l5bok" role="3uHU7B">
+                <node concept="2OqwBi" id="106MO2l59JH" role="3uHU7B">
+                  <node concept="13iPFW" id="106MO2l59$5" role="2Oq$k0" />
+                  <node concept="3TrcHB" id="106MO2l59Sx" role="2OqNvi">
+                    <ref role="3TsBF5" to="a1af:6gY6GEDvQYT" resolve="result" />
+                  </node>
+                </node>
+                <node concept="2OqwBi" id="106MO2l5clb" role="3uHU7w">
+                  <node concept="37vLTw" id="106MO2l5btm" role="2Oq$k0">
+                    <ref role="3cqZAo" node="106MO2l57jJ" resolve="result" />
+                  </node>
+                  <node concept="2sxana" id="106MO2l5cR5" role="2OqNvi">
+                    <ref role="2sxfKC" to="qqy:19GnlsUkKsI" resolve="message" />
+                  </node>
+                </node>
+              </node>
+              <node concept="17R0WA" id="106MO2l5e5K" role="3uHU7w">
+                <node concept="2OqwBi" id="106MO2l5d1B" role="3uHU7B">
+                  <node concept="13iPFW" id="106MO2l5cSZ" role="2Oq$k0" />
+                  <node concept="3TrcHB" id="106MO2l5db6" role="2OqNvi">
+                    <ref role="3TsBF5" to="a1af:78RogMCGEUf" resolve="resultNodeId" />
+                  </node>
+                </node>
+                <node concept="2OqwBi" id="106MO2l5gJR" role="3uHU7w">
+                  <node concept="2OqwBi" id="106MO2l5gi2" role="2Oq$k0">
+                    <node concept="2JrnkZ" id="106MO2l5fRV" role="2Oq$k0">
+                      <node concept="2OqwBi" id="106MO2l5eTA" role="2JrQYb">
+                        <node concept="37vLTw" id="106MO2l5ebs" role="2Oq$k0">
+                          <ref role="3cqZAo" node="106MO2l57jJ" resolve="result" />
+                        </node>
+                        <node concept="2sxana" id="106MO2l5frX" role="2OqNvi">
+                          <ref role="2sxfKC" to="qqy:3ghOW5HS78o" resolve="node" />
+                        </node>
+                      </node>
+                    </node>
+                    <node concept="liA8E" id="106MO2l6XGr" role="2OqNvi">
+                      <ref role="37wK5l" to="mhbf:~SNode.getNodeId()" resolve="getNodeId" />
+                    </node>
+                  </node>
+                  <node concept="liA8E" id="106MO2l5gSP" role="2OqNvi">
+                    <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="37vLTG" id="106MO2l57jJ" role="3clF46">
+        <property role="TrG5h" value="result" />
+        <node concept="3uibUv" id="106MO2l57jI" role="1tU5fm">
+          <ref role="3uigEE" to="qqy:19GnlsUkKsu" resolve="Result" />
+        </node>
+      </node>
+    </node>
     <node concept="13hLZK" id="4Wm$DJ9cjhM" role="13h7CW">
       <node concept="3clFbS" id="4Wm$DJ9cjhN" role="2VODD2" />
     </node>

From 21a1080deba091db9858fb2c9917038594e371c4 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Mon, 23 Sep 2024 17:09:59 +0200
Subject: [PATCH 18/42] mpsqa: fix error reporting on typesystem level

---
 .../org.mpsqa.lint.generic.typesystem.mps     | 142 +++++++++++-------
 1 file changed, 89 insertions(+), 53 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
index 3acb038b..77ab6884 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
@@ -280,6 +280,20 @@
       <concept id="1196350785113" name="jetbrains.mps.lang.quotation.structure.Quotation" flags="nn" index="2c44tf">
         <child id="1196350785114" name="quotedNode" index="2c44tc" />
       </concept>
+      <concept id="5455284157993911077" name="jetbrains.mps.lang.quotation.structure.NodeBuilderInitProperty" flags="ng" index="2pJxcG">
+        <reference id="5455284157993911078" name="property" index="2pJxcJ" />
+        <child id="1595412875168045201" name="initValue" index="28ntcv" />
+      </concept>
+      <concept id="5455284157993863837" name="jetbrains.mps.lang.quotation.structure.NodeBuilder" flags="nn" index="2pJPEk">
+        <child id="5455284157993863838" name="quotedNode" index="2pJPEn" />
+      </concept>
+      <concept id="5455284157993863840" name="jetbrains.mps.lang.quotation.structure.NodeBuilderNode" flags="nn" index="2pJPED">
+        <reference id="5455284157993910961" name="concept" index="2pJxaS" />
+        <child id="5455284157993911099" name="values" index="2pJxcM" />
+      </concept>
+      <concept id="6985522012210254362" name="jetbrains.mps.lang.quotation.structure.NodeBuilderPropertyExpression" flags="nn" index="WxPPo">
+        <child id="6985522012210254363" name="expression" index="WxPPp" />
+      </concept>
     </language>
     <language id="446c26eb-2b7b-4bf0-9b35-f83fa582753e" name="jetbrains.mps.lang.modelapi">
       <concept id="4733039728785194814" name="jetbrains.mps.lang.modelapi.structure.NamedNodeReference" flags="ng" index="ZC_QK">
@@ -1244,6 +1258,53 @@
             </node>
           </node>
         </node>
+        <node concept="3cpWs8" id="106MO2l7ZVO" role="3cqZAp">
+          <node concept="3cpWsn" id="106MO2l7ZVP" role="3cpWs9">
+            <property role="TrG5h" value="resultEntry" />
+            <node concept="3Tqbb2" id="106MO2l7Wg9" role="1tU5fm">
+              <ref role="ehGHo" to="a1af:6gY6GEDvQYS" resolve="ResultEntry" />
+            </node>
+            <node concept="2pJPEk" id="106MO2l7ZVQ" role="33vP2m">
+              <node concept="2pJPED" id="106MO2l7ZVR" role="2pJPEn">
+                <ref role="2pJxaS" to="a1af:6gY6GEDvQYS" resolve="ResultEntry" />
+                <node concept="2pJxcG" id="106MO2l7ZVS" role="2pJxcM">
+                  <ref role="2pJxcJ" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                  <node concept="WxPPo" id="106MO2l7ZVT" role="28ntcv">
+                    <node concept="2OqwBi" id="106MO2l7ZVU" role="WxPPp">
+                      <node concept="2OqwBi" id="106MO2l7ZVV" role="2Oq$k0">
+                        <node concept="37vLTw" id="106MO2l7ZVW" role="2Oq$k0">
+                          <ref role="3cqZAo" node="ST9rMmWlmc" resolve="res" />
+                        </node>
+                        <node concept="2sxana" id="106MO2l7ZVX" role="2OqNvi">
+                          <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
+                        </node>
+                      </node>
+                      <node concept="liA8E" id="106MO2l7ZVY" role="2OqNvi">
+                        <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3cpWs8" id="106MO2l7QH8" role="3cqZAp">
+          <node concept="3cpWsn" id="106MO2l7QHb" role="3cpWs9">
+            <property role="TrG5h" value="location" />
+            <node concept="3uibUv" id="106MO2l7RmX" role="1tU5fm">
+              <ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
+            </node>
+            <node concept="2OqwBi" id="106MO2l80Ij" role="33vP2m">
+              <node concept="37vLTw" id="106MO2l7ZVZ" role="2Oq$k0">
+                <ref role="3cqZAo" node="106MO2l7ZVP" resolve="resultEntry" />
+              </node>
+              <node concept="2qgKlT" id="106MO2l814J" role="2OqNvi">
+                <ref role="37wK5l" to="b659:4XPt_HaECXY" resolve="convertLocationToObject" />
+              </node>
+            </node>
+          </node>
+        </node>
         <node concept="3clFbJ" id="3hskWvhsAt4" role="3cqZAp">
           <node concept="3clFbS" id="3hskWvhsAt6" role="3clFbx">
             <node concept="3clFbJ" id="1BlvkgWl8X6" role="3cqZAp">
@@ -1259,20 +1320,15 @@
                         <node concept="1eOMI4" id="1BlvkgWnbK9" role="2Oq$k0">
                           <node concept="10QFUN" id="1BlvkgWnbK6" role="1eOMHV">
                             <node concept="3uibUv" id="1BlvkgWndRG" role="10QFUM">
-                              <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
+                              <ref role="3uigEE" to="lui2:~SModuleReference" resolve="SModuleReference" />
                             </node>
-                            <node concept="2OqwBi" id="1BlvkgWnfSm" role="10QFUP">
-                              <node concept="37vLTw" id="1BlvkgWnfSn" role="2Oq$k0">
-                                <ref role="3cqZAo" node="ST9rMmWlmc" resolve="res" />
-                              </node>
-                              <node concept="2sxana" id="1BlvkgWnfSo" role="2OqNvi">
-                                <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
-                              </node>
+                            <node concept="37vLTw" id="106MO2l7Ts8" role="10QFUP">
+                              <ref role="3cqZAo" node="106MO2l7QHb" resolve="location" />
                             </node>
                           </node>
                         </node>
                         <node concept="liA8E" id="1BlvkgWnvPD" role="2OqNvi">
-                          <ref role="37wK5l" to="lui2:~SModule.getModuleName()" resolve="getModuleName" />
+                          <ref role="37wK5l" to="lui2:~SModuleReference.getModuleName()" resolve="getModuleName" />
                         </node>
                       </node>
                     </node>
@@ -1294,15 +1350,10 @@
               </node>
               <node concept="2ZW3vV" id="1BlvkgWloLC" role="3clFbw">
                 <node concept="3uibUv" id="1BlvkgWlqV2" role="2ZW6by">
-                  <ref role="3uigEE" to="lui2:~SModule" resolve="SModule" />
+                  <ref role="3uigEE" to="lui2:~SModuleReference" resolve="SModuleReference" />
                 </node>
-                <node concept="2OqwBi" id="1BlvkgWlc14" role="2ZW6bz">
-                  <node concept="37vLTw" id="1BlvkgWlb3x" role="2Oq$k0">
-                    <ref role="3cqZAo" node="ST9rMmWlmc" resolve="res" />
-                  </node>
-                  <node concept="2sxana" id="1BlvkgWleLL" role="2OqNvi">
-                    <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
-                  </node>
+                <node concept="37vLTw" id="106MO2l7SGm" role="2ZW6bz">
+                  <ref role="3cqZAo" node="106MO2l7QHb" resolve="location" />
                 </node>
               </node>
               <node concept="3eNFk2" id="1BlvkgWmG6R" role="3eNLev">
@@ -1313,25 +1364,25 @@
                         <ref role="3cqZAo" node="3hskWvhsmDv" resolve="messageBuilder" />
                       </node>
                       <node concept="liA8E" id="1BlvkgWnmMG" role="2OqNvi">
-                        <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.Object)" resolve="append" />
-                        <node concept="2OqwBi" id="1BlvkgWnmMH" role="37wK5m">
-                          <node concept="1eOMI4" id="1BlvkgWnmMI" role="2Oq$k0">
-                            <node concept="10QFUN" id="1BlvkgWnmMJ" role="1eOMHV">
-                              <node concept="3uibUv" id="1BlvkgWnmMK" role="10QFUM">
-                                <ref role="3uigEE" to="mhbf:~SModel" resolve="SModel" />
-                              </node>
-                              <node concept="2OqwBi" id="1BlvkgWnmML" role="10QFUP">
-                                <node concept="37vLTw" id="1BlvkgWnmMM" role="2Oq$k0">
-                                  <ref role="3cqZAo" node="ST9rMmWlmc" resolve="res" />
+                        <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
+                        <node concept="2OqwBi" id="106MO2l8VPg" role="37wK5m">
+                          <node concept="2OqwBi" id="1BlvkgWnmMH" role="2Oq$k0">
+                            <node concept="1eOMI4" id="1BlvkgWnmMI" role="2Oq$k0">
+                              <node concept="10QFUN" id="1BlvkgWnmMJ" role="1eOMHV">
+                                <node concept="3uibUv" id="1BlvkgWnmMK" role="10QFUM">
+                                  <ref role="3uigEE" to="mhbf:~SModelReference" resolve="SModelReference" />
                                 </node>
-                                <node concept="2sxana" id="1BlvkgWnmMN" role="2OqNvi">
-                                  <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
+                                <node concept="37vLTw" id="106MO2l97Nr" role="10QFUP">
+                                  <ref role="3cqZAo" node="106MO2l7QHb" resolve="location" />
                                 </node>
                               </node>
                             </node>
+                            <node concept="liA8E" id="1BlvkgWnmMO" role="2OqNvi">
+                              <ref role="37wK5l" to="mhbf:~SModelReference.getName()" resolve="getName" />
+                            </node>
                           </node>
-                          <node concept="liA8E" id="1BlvkgWnmMO" role="2OqNvi">
-                            <ref role="37wK5l" to="mhbf:~SModel.getName()" resolve="getName" />
+                          <node concept="liA8E" id="106MO2l8Wbi" role="2OqNvi">
+                            <ref role="37wK5l" to="mhbf:~SModelName.toString()" resolve="toString" />
                           </node>
                         </node>
                       </node>
@@ -1353,15 +1404,10 @@
                 </node>
                 <node concept="2ZW3vV" id="1BlvkgWl_gt" role="3eO9$A">
                   <node concept="3uibUv" id="1BlvkgWl_gu" role="2ZW6by">
-                    <ref role="3uigEE" to="mhbf:~SModel" resolve="SModel" />
+                    <ref role="3uigEE" to="mhbf:~SModelReference" resolve="SModelReference" />
                   </node>
-                  <node concept="2OqwBi" id="1BlvkgWl_gv" role="2ZW6bz">
-                    <node concept="37vLTw" id="1BlvkgWl_gw" role="2Oq$k0">
-                      <ref role="3cqZAo" node="ST9rMmWlmc" resolve="res" />
-                    </node>
-                    <node concept="2sxana" id="1BlvkgWl_gx" role="2OqNvi">
-                      <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
-                    </node>
+                  <node concept="37vLTw" id="106MO2l7UbN" role="2ZW6bz">
+                    <ref role="3cqZAo" node="106MO2l7QHb" resolve="location" />
                   </node>
                 </node>
               </node>
@@ -1374,13 +1420,8 @@
                       </node>
                       <node concept="liA8E" id="3hskWvhsEfi" role="2OqNvi">
                         <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.Object)" resolve="append" />
-                        <node concept="2OqwBi" id="3hskWvhsFi2" role="37wK5m">
-                          <node concept="37vLTw" id="3hskWvhsEm8" role="2Oq$k0">
-                            <ref role="3cqZAo" node="ST9rMmWlmc" resolve="res" />
-                          </node>
-                          <node concept="2sxana" id="3hskWvhsG0D" role="2OqNvi">
-                            <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
-                          </node>
+                        <node concept="37vLTw" id="106MO2l98uS" role="37wK5m">
+                          <ref role="3cqZAo" node="106MO2l7QHb" resolve="location" />
                         </node>
                       </node>
                     </node>
@@ -1404,13 +1445,8 @@
           </node>
           <node concept="3y3z36" id="3hskWvhsD4p" role="3clFbw">
             <node concept="10Nm6u" id="3hskWvhsDew" role="3uHU7w" />
-            <node concept="2OqwBi" id="3hskWvhsC7a" role="3uHU7B">
-              <node concept="37vLTw" id="3hskWvhsBHb" role="2Oq$k0">
-                <ref role="3cqZAo" node="ST9rMmWlmc" resolve="res" />
-              </node>
-              <node concept="2sxana" id="3hskWvhsCNk" role="2OqNvi">
-                <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
-              </node>
+            <node concept="37vLTw" id="106MO2l7S7e" role="3uHU7B">
+              <ref role="3cqZAo" node="106MO2l7QHb" resolve="location" />
             </node>
           </node>
         </node>

From a3907af2c48450d685991c62ccd97a3221130341 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Mon, 23 Sep 2024 22:07:53 +0200
Subject: [PATCH 19/42] mpsqa: fix NullPointers when the location is null

---
 .../org.mpsqa.lint.generic.behavior.mps       |  58 ++++++----
 .../org.mpsqa.lint.generic.typesystem.mps     | 108 +++++++++---------
 2 files changed, 94 insertions(+), 72 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
index 2c45defe..1650e2d3 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
@@ -2479,27 +2479,6 @@
       <node concept="3clFbS" id="106MO2l56WJ" role="3clF47">
         <node concept="3clFbF" id="106MO2l59$6" role="3cqZAp">
           <node concept="1Wc70l" id="106MO2l5hf1" role="3clFbG">
-            <node concept="17R0WA" id="106MO2l5m9l" role="3uHU7w">
-              <node concept="2OqwBi" id="106MO2l5nJK" role="3uHU7w">
-                <node concept="2OqwBi" id="106MO2l5n4F" role="2Oq$k0">
-                  <node concept="37vLTw" id="106MO2l5mgN" role="2Oq$k0">
-                    <ref role="3cqZAo" node="106MO2l57jJ" resolve="result" />
-                  </node>
-                  <node concept="2sxana" id="106MO2l5nC8" role="2OqNvi">
-                    <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
-                  </node>
-                </node>
-                <node concept="liA8E" id="106MO2l5nP_" role="2OqNvi">
-                  <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
-                </node>
-              </node>
-              <node concept="2OqwBi" id="106MO2l5lAt" role="3uHU7B">
-                <node concept="13iPFW" id="106MO2l5l$w" role="2Oq$k0" />
-                <node concept="3TrcHB" id="106MO2l5lE1" role="2OqNvi">
-                  <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
-                </node>
-              </node>
-            </node>
             <node concept="1Wc70l" id="106MO2l5cSW" role="3uHU7B">
               <node concept="17R0WA" id="106MO2l5bok" role="3uHU7B">
                 <node concept="2OqwBi" id="106MO2l59JH" role="3uHU7B">
@@ -2546,6 +2525,43 @@
                 </node>
               </node>
             </node>
+            <node concept="17R0WA" id="106MO2l5m9l" role="3uHU7w">
+              <node concept="2OqwBi" id="106MO2l5lAt" role="3uHU7B">
+                <node concept="13iPFW" id="106MO2l5l$w" role="2Oq$k0" />
+                <node concept="3TrcHB" id="106MO2l5lE1" role="2OqNvi">
+                  <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                </node>
+              </node>
+              <node concept="1eOMI4" id="1xUl7871GBE" role="3uHU7w">
+                <node concept="3K4zz7" id="1xUl7871E0X" role="1eOMHV">
+                  <node concept="2OqwBi" id="106MO2l5nJK" role="3K4E3e">
+                    <node concept="2OqwBi" id="106MO2l5n4F" role="2Oq$k0">
+                      <node concept="37vLTw" id="106MO2l5mgN" role="2Oq$k0">
+                        <ref role="3cqZAo" node="106MO2l57jJ" resolve="result" />
+                      </node>
+                      <node concept="2sxana" id="106MO2l5nC8" role="2OqNvi">
+                        <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
+                      </node>
+                    </node>
+                    <node concept="liA8E" id="106MO2l5nP_" role="2OqNvi">
+                      <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
+                    </node>
+                  </node>
+                  <node concept="10Nm6u" id="1xUl7871Gcx" role="3K4GZi" />
+                  <node concept="3y3z36" id="1xUl7871FZR" role="3K4Cdx">
+                    <node concept="10Nm6u" id="1xUl7871G3K" role="3uHU7w" />
+                    <node concept="2OqwBi" id="1xUl7871FgX" role="3uHU7B">
+                      <node concept="37vLTw" id="1xUl7871EmW" role="2Oq$k0">
+                        <ref role="3cqZAo" node="106MO2l57jJ" resolve="result" />
+                      </node>
+                      <node concept="2sxana" id="1xUl7871FOs" role="2OqNvi">
+                        <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
           </node>
         </node>
       </node>
diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
index 77ab6884..185b2953 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
@@ -1258,49 +1258,72 @@
             </node>
           </node>
         </node>
-        <node concept="3cpWs8" id="106MO2l7ZVO" role="3cqZAp">
-          <node concept="3cpWsn" id="106MO2l7ZVP" role="3cpWs9">
-            <property role="TrG5h" value="resultEntry" />
-            <node concept="3Tqbb2" id="106MO2l7Wg9" role="1tU5fm">
-              <ref role="ehGHo" to="a1af:6gY6GEDvQYS" resolve="ResultEntry" />
-            </node>
-            <node concept="2pJPEk" id="106MO2l7ZVQ" role="33vP2m">
-              <node concept="2pJPED" id="106MO2l7ZVR" role="2pJPEn">
-                <ref role="2pJxaS" to="a1af:6gY6GEDvQYS" resolve="ResultEntry" />
-                <node concept="2pJxcG" id="106MO2l7ZVS" role="2pJxcM">
-                  <ref role="2pJxcJ" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
-                  <node concept="WxPPo" id="106MO2l7ZVT" role="28ntcv">
-                    <node concept="2OqwBi" id="106MO2l7ZVU" role="WxPPp">
-                      <node concept="2OqwBi" id="106MO2l7ZVV" role="2Oq$k0">
-                        <node concept="37vLTw" id="106MO2l7ZVW" role="2Oq$k0">
-                          <ref role="3cqZAo" node="ST9rMmWlmc" resolve="res" />
-                        </node>
-                        <node concept="2sxana" id="106MO2l7ZVX" role="2OqNvi">
-                          <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
+        <node concept="3cpWs8" id="106MO2l7QH8" role="3cqZAp">
+          <node concept="3cpWsn" id="106MO2l7QHb" role="3cpWs9">
+            <property role="TrG5h" value="location" />
+            <node concept="3uibUv" id="106MO2l7RmX" role="1tU5fm">
+              <ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
+            </node>
+            <node concept="10Nm6u" id="1xUl787165X" role="33vP2m" />
+          </node>
+        </node>
+        <node concept="3clFbJ" id="1xUl78716Er" role="3cqZAp">
+          <node concept="3clFbS" id="1xUl78716Et" role="3clFbx">
+            <node concept="3cpWs8" id="106MO2l7ZVO" role="3cqZAp">
+              <node concept="3cpWsn" id="106MO2l7ZVP" role="3cpWs9">
+                <property role="TrG5h" value="resultEntry" />
+                <node concept="3Tqbb2" id="106MO2l7Wg9" role="1tU5fm">
+                  <ref role="ehGHo" to="a1af:6gY6GEDvQYS" resolve="ResultEntry" />
+                </node>
+                <node concept="2pJPEk" id="106MO2l7ZVQ" role="33vP2m">
+                  <node concept="2pJPED" id="106MO2l7ZVR" role="2pJPEn">
+                    <ref role="2pJxaS" to="a1af:6gY6GEDvQYS" resolve="ResultEntry" />
+                    <node concept="2pJxcG" id="106MO2l7ZVS" role="2pJxcM">
+                      <ref role="2pJxcJ" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                      <node concept="WxPPo" id="106MO2l7ZVT" role="28ntcv">
+                        <node concept="2OqwBi" id="106MO2l7ZVU" role="WxPPp">
+                          <node concept="2OqwBi" id="106MO2l7ZVV" role="2Oq$k0">
+                            <node concept="37vLTw" id="106MO2l7ZVW" role="2Oq$k0">
+                              <ref role="3cqZAo" node="ST9rMmWlmc" resolve="res" />
+                            </node>
+                            <node concept="2sxana" id="106MO2l7ZVX" role="2OqNvi">
+                              <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
+                            </node>
+                          </node>
+                          <node concept="liA8E" id="106MO2l7ZVY" role="2OqNvi">
+                            <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
+                          </node>
                         </node>
                       </node>
-                      <node concept="liA8E" id="106MO2l7ZVY" role="2OqNvi">
-                        <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
-                      </node>
                     </node>
                   </node>
                 </node>
               </node>
             </node>
-          </node>
-        </node>
-        <node concept="3cpWs8" id="106MO2l7QH8" role="3cqZAp">
-          <node concept="3cpWsn" id="106MO2l7QHb" role="3cpWs9">
-            <property role="TrG5h" value="location" />
-            <node concept="3uibUv" id="106MO2l7RmX" role="1tU5fm">
-              <ref role="3uigEE" to="wyt6:~Object" resolve="Object" />
+            <node concept="3clFbF" id="1xUl78713vs" role="3cqZAp">
+              <node concept="37vLTI" id="1xUl78713vu" role="3clFbG">
+                <node concept="2OqwBi" id="106MO2l80Ij" role="37vLTx">
+                  <node concept="37vLTw" id="106MO2l7ZVZ" role="2Oq$k0">
+                    <ref role="3cqZAo" node="106MO2l7ZVP" resolve="resultEntry" />
+                  </node>
+                  <node concept="2qgKlT" id="106MO2l814J" role="2OqNvi">
+                    <ref role="37wK5l" to="b659:4XPt_HaECXY" resolve="convertLocationToObject" />
+                  </node>
+                </node>
+                <node concept="37vLTw" id="1xUl78713vy" role="37vLTJ">
+                  <ref role="3cqZAo" node="106MO2l7QHb" resolve="location" />
+                </node>
+              </node>
             </node>
-            <node concept="2OqwBi" id="106MO2l80Ij" role="33vP2m">
-              <node concept="37vLTw" id="106MO2l7ZVZ" role="2Oq$k0">
-                <ref role="3cqZAo" node="106MO2l7ZVP" resolve="resultEntry" />
+          </node>
+          <node concept="3y3z36" id="1xUl7871aPv" role="3clFbw">
+            <node concept="10Nm6u" id="1xUl7871aXm" role="3uHU7w" />
+            <node concept="2OqwBi" id="1xUl78718TQ" role="3uHU7B">
+              <node concept="37vLTw" id="1xUl78717qR" role="2Oq$k0">
+                <ref role="3cqZAo" node="ST9rMmWlmc" resolve="res" />
               </node>
-              <node concept="2qgKlT" id="106MO2l814J" role="2OqNvi">
-                <ref role="37wK5l" to="b659:4XPt_HaECXY" resolve="convertLocationToObject" />
+              <node concept="2sxana" id="1xUl78719NJ" role="2OqNvi">
+                <ref role="2sxfKC" to="qqy:3ghOW5H_ihW" resolve="location" />
               </node>
             </node>
           </node>
@@ -1411,23 +1434,6 @@
                   </node>
                 </node>
               </node>
-              <node concept="9aQIb" id="1BlvkgWmXpw" role="9aQIa">
-                <node concept="3clFbS" id="1BlvkgWmXpx" role="9aQI4">
-                  <node concept="3clFbF" id="3hskWvhsDhC" role="3cqZAp">
-                    <node concept="2OqwBi" id="3hskWvhsDKY" role="3clFbG">
-                      <node concept="37vLTw" id="3hskWvhsDhA" role="2Oq$k0">
-                        <ref role="3cqZAo" node="3hskWvhsmDv" resolve="messageBuilder" />
-                      </node>
-                      <node concept="liA8E" id="3hskWvhsEfi" role="2OqNvi">
-                        <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.Object)" resolve="append" />
-                        <node concept="37vLTw" id="106MO2l98uS" role="37wK5m">
-                          <ref role="3cqZAo" node="106MO2l7QHb" resolve="location" />
-                        </node>
-                      </node>
-                    </node>
-                  </node>
-                </node>
-              </node>
             </node>
             <node concept="3clFbF" id="3hskWvhsGlT" role="3cqZAp">
               <node concept="2OqwBi" id="3hskWvhsGoB" role="3clFbG">

From 1f012e8f75e1ebec10a91c816d6e180637a332c2 Mon Sep 17 00:00:00 2001
From: Daniel Ratiu <ratiud@googlemail.com>
Date: Tue, 24 Sep 2024 07:54:11 +0200
Subject: [PATCH 20/42] lint.generic.editor: mark with GREEN the linter
 settings which are "pure" - evaluation is not skipped and no whitelists are
 used (i.e. everything is GREEN)

---
 .../models/org.mpsqa.lint.generic.editor.mps              | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
index 2082f0dd..1e9089c0 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
@@ -779,8 +779,8 @@
                       <ref role="3cqZAo" to="lzb2:~JBColor.ORANGE" resolve="ORANGE" />
                       <ref role="1PxDUh" to="lzb2:~JBColor" resolve="JBColor" />
                     </node>
-                    <node concept="10M0yZ" id="63CQ8uYLJDf" role="3K4GZi">
-                      <ref role="3cqZAo" to="lzb2:~JBColor.LIGHT_GRAY" resolve="LIGHT_GRAY" />
+                    <node concept="10M0yZ" id="7_XHz4_JkX6" role="3K4GZi">
+                      <ref role="3cqZAo" to="lzb2:~JBColor.GREEN" resolve="GREEN" />
                       <ref role="1PxDUh" to="lzb2:~JBColor" resolve="JBColor" />
                     </node>
                     <node concept="2OqwBi" id="63CQ8uYIrmU" role="3K4Cdx">
@@ -1775,8 +1775,8 @@
                       <ref role="1PxDUh" to="lzb2:~JBColor" resolve="JBColor" />
                       <ref role="3cqZAo" to="lzb2:~JBColor.ORANGE" resolve="ORANGE" />
                     </node>
-                    <node concept="10M0yZ" id="63CQ8uYM8eX" role="3K4GZi">
-                      <ref role="3cqZAo" to="lzb2:~JBColor.LIGHT_GRAY" resolve="LIGHT_GRAY" />
+                    <node concept="10M0yZ" id="7_XHz4_J2PX" role="3K4GZi">
+                      <ref role="3cqZAo" to="lzb2:~JBColor.GREEN" resolve="GREEN" />
                       <ref role="1PxDUh" to="lzb2:~JBColor" resolve="JBColor" />
                     </node>
                     <node concept="2OqwBi" id="652KpqR2FTk" role="3K4Cdx">

From 98f6a3d59806421eb5a3705f784c948d5772ae23 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Tue, 24 Sep 2024 08:43:53 +0200
Subject: [PATCH 21/42] mpsqa: fix more NullPointers

---
 .../org.mpsqa.lint.generic.behavior.mps       | 105 ++++++++++++++----
 1 file changed, 85 insertions(+), 20 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
index 1650e2d3..64a0fd9e 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
@@ -2040,21 +2040,54 @@
                 </node>
               </node>
             </node>
+            <node concept="3cpWs8" id="7YedNyZKP5$" role="3cqZAp">
+              <node concept="3cpWsn" id="7YedNyZKP5_" role="3cpWs9">
+                <property role="TrG5h" value="model" />
+                <node concept="3uibUv" id="7YedNyZKK81" role="1tU5fm">
+                  <ref role="3uigEE" to="mhbf:~SModel" resolve="SModel" />
+                </node>
+                <node concept="2OqwBi" id="7YedNyZKP5A" role="33vP2m">
+                  <node concept="37vLTw" id="7YedNyZKP5B" role="2Oq$k0">
+                    <ref role="3cqZAo" node="4XPt_HaEId8" resolve="modelRef" />
+                  </node>
+                  <node concept="liA8E" id="7YedNyZKP5C" role="2OqNvi">
+                    <ref role="37wK5l" to="mhbf:~SModelReference.resolve(org.jetbrains.mps.openapi.module.SRepository)" resolve="resolve" />
+                    <node concept="37vLTw" id="7YedNyZKP5D" role="37wK5m">
+                      <ref role="3cqZAo" node="4XPt_HaxCna" resolve="repository" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbJ" id="7YedNyZKPBV" role="3cqZAp">
+              <node concept="3clFbS" id="7YedNyZKPBX" role="3clFbx">
+                <node concept="3cpWs6" id="7YedNyZKQok" role="3cqZAp">
+                  <node concept="1Ls8ON" id="7YedNyZKQol" role="3cqZAk">
+                    <node concept="2OqwBi" id="7YedNyZKQom" role="1Lso8e">
+                      <node concept="13iPFW" id="7YedNyZKQon" role="2Oq$k0" />
+                      <node concept="3TrcHB" id="7YedNyZKQoo" role="2OqNvi">
+                        <ref role="3TsBF5" to="a1af:2I_DQhwrOw" resolve="resultLocation" />
+                      </node>
+                    </node>
+                    <node concept="3clFbT" id="7YedNyZKQop" role="1Lso8e" />
+                  </node>
+                </node>
+              </node>
+              <node concept="3clFbC" id="7YedNyZKPWP" role="3clFbw">
+                <node concept="10Nm6u" id="7YedNyZKQ5N" role="3uHU7w" />
+                <node concept="37vLTw" id="7YedNyZKPI1" role="3uHU7B">
+                  <ref role="3cqZAo" node="7YedNyZKP5_" resolve="model" />
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbH" id="7YedNyZKQFT" role="3cqZAp" />
             <node concept="3cpWs6" id="4XPt_HauHqo" role="3cqZAp">
               <node concept="1Ls8ON" id="4XPt_HaCtaF" role="3cqZAk">
                 <node concept="3cpWs3" id="4XPt_HaxD5R" role="1Lso8e">
                   <node concept="2OqwBi" id="4XPt_HaxEfO" role="3uHU7w">
                     <node concept="2OqwBi" id="4XPt_HaxDTQ" role="2Oq$k0">
-                      <node concept="2OqwBi" id="4XPt_HaxDj3" role="2Oq$k0">
-                        <node concept="37vLTw" id="4XPt_HaxD94" role="2Oq$k0">
-                          <ref role="3cqZAo" node="4XPt_HaEId8" resolve="modelRef" />
-                        </node>
-                        <node concept="liA8E" id="4XPt_HaxD_D" role="2OqNvi">
-                          <ref role="37wK5l" to="mhbf:~SModelReference.resolve(org.jetbrains.mps.openapi.module.SRepository)" resolve="resolve" />
-                          <node concept="37vLTw" id="4XPt_HaxDK5" role="37wK5m">
-                            <ref role="3cqZAo" node="4XPt_HaxCna" resolve="repository" />
-                          </node>
-                        </node>
+                      <node concept="37vLTw" id="7YedNyZKP5E" role="2Oq$k0">
+                        <ref role="3cqZAo" node="7YedNyZKP5_" resolve="model" />
                       </node>
                       <node concept="liA8E" id="4XPt_HaxE78" role="2OqNvi">
                         <ref role="37wK5l" to="mhbf:~SModel.getModule()" resolve="getModule" />
@@ -2245,6 +2278,17 @@
                 </node>
               </node>
             </node>
+            <node concept="3clFbJ" id="7YedNyZKR1V" role="3cqZAp">
+              <node concept="3clFbS" id="7YedNyZKR1X" role="3clFbx">
+                <node concept="3cpWs6" id="7YedNyZKRB4" role="3cqZAp" />
+              </node>
+              <node concept="3clFbC" id="7YedNyZKRnA" role="3clFbw">
+                <node concept="10Nm6u" id="7YedNyZKRvn" role="3uHU7w" />
+                <node concept="37vLTw" id="7YedNyZKRai" role="3uHU7B">
+                  <ref role="3cqZAo" node="4XPt_HaF1fZ" resolve="model" />
+                </node>
+              </node>
+            </node>
             <node concept="3clFbF" id="4XPt_HaEOh0" role="3cqZAp">
               <node concept="37vLTI" id="4XPt_HaEPEX" role="3clFbG">
                 <node concept="2OqwBi" id="4XPt_HaF4bq" role="37vLTx">
@@ -2331,6 +2375,17 @@
                   </node>
                 </node>
               </node>
+              <node concept="3clFbJ" id="7YedNyZKRRC" role="3cqZAp">
+                <node concept="3clFbS" id="7YedNyZKRRE" role="3clFbx">
+                  <node concept="3cpWs6" id="7YedNyZKSK5" role="3cqZAp" />
+                </node>
+                <node concept="3clFbC" id="7YedNyZKStx" role="3clFbw">
+                  <node concept="10Nm6u" id="7YedNyZKSCb" role="3uHU7w" />
+                  <node concept="37vLTw" id="7YedNyZKS0C" role="3uHU7B">
+                    <ref role="3cqZAo" node="4XPt_HaFgpK" resolve="module" />
+                  </node>
+                </node>
+              </node>
               <node concept="3clFbF" id="4XPt_HaFh31" role="3cqZAp">
                 <node concept="37vLTI" id="4XPt_HaFigF" role="3clFbG">
                   <node concept="2OqwBi" id="4XPt_HaFk5L" role="37vLTx">
@@ -2448,19 +2503,29 @@
                 </node>
               </node>
             </node>
-            <node concept="3clFbF" id="4XPt_HaCGgF" role="3cqZAp">
-              <node concept="2OqwBi" id="4XPt_HaCGoE" role="3clFbG">
-                <node concept="2YIFZM" id="4XPt_HaCGhd" role="2Oq$k0">
-                  <ref role="37wK5l" to="z60i:~Desktop.getDesktop()" resolve="getDesktop" />
-                  <ref role="1Pybhc" to="z60i:~Desktop" resolve="Desktop" />
-                </node>
-                <node concept="liA8E" id="4XPt_HaCGwI" role="2OqNvi">
-                  <ref role="37wK5l" to="z60i:~Desktop.open(java.io.File)" resolve="open" />
-                  <node concept="37vLTw" id="4XPt_HaDmUU" role="37wK5m">
-                    <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
+            <node concept="3clFbJ" id="5MlhRObXPtR" role="3cqZAp">
+              <node concept="3clFbS" id="5MlhRObXPtT" role="3clFbx">
+                <node concept="3clFbF" id="4XPt_HaCGgF" role="3cqZAp">
+                  <node concept="2OqwBi" id="4XPt_HaCGoE" role="3clFbG">
+                    <node concept="2YIFZM" id="4XPt_HaCGhd" role="2Oq$k0">
+                      <ref role="37wK5l" to="z60i:~Desktop.getDesktop()" resolve="getDesktop" />
+                      <ref role="1Pybhc" to="z60i:~Desktop" resolve="Desktop" />
+                    </node>
+                    <node concept="liA8E" id="4XPt_HaCGwI" role="2OqNvi">
+                      <ref role="37wK5l" to="z60i:~Desktop.open(java.io.File)" resolve="open" />
+                      <node concept="37vLTw" id="4XPt_HaDmUU" role="37wK5m">
+                        <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
+                      </node>
+                    </node>
                   </node>
                 </node>
               </node>
+              <node concept="3y3z36" id="5MlhRObXQhY" role="3clFbw">
+                <node concept="10Nm6u" id="5MlhRObXQwE" role="3uHU7w" />
+                <node concept="37vLTw" id="5MlhRObXP_E" role="3uHU7B">
+                  <ref role="3cqZAo" node="4XPt_HaDmUO" resolve="file" />
+                </node>
+              </node>
             </node>
           </node>
         </node>

From f8875e8915c5df60fc6e02b87292aed8c71c9f25 Mon Sep 17 00:00:00 2001
From: danielratiu <ratiud@googlemail.com>
Date: Tue, 24 Sep 2024 10:12:07 +0200
Subject: [PATCH 22/42] fixed IllegalModelAccessError in SuppressCheckerResults
 (#202)

* fixed IllegalModelAccessError in SuppressCheckerResults
---
 ...rrors_suppressor.pluginSolution.plugin.mps | 184 ++++++++++--------
 1 file changed, 99 insertions(+), 85 deletions(-)

diff --git a/code/languages/org.mpsqa.base/solutions/org.mpsqa.base.errors_suppressor.pluginSolution/models/org.mpsqa.base.errors_suppressor.pluginSolution.plugin.mps b/code/languages/org.mpsqa.base/solutions/org.mpsqa.base.errors_suppressor.pluginSolution/models/org.mpsqa.base.errors_suppressor.pluginSolution.plugin.mps
index d4a9575e..b8b9b908 100644
--- a/code/languages/org.mpsqa.base/solutions/org.mpsqa.base.errors_suppressor.pluginSolution/models/org.mpsqa.base.errors_suppressor.pluginSolution.plugin.mps
+++ b/code/languages/org.mpsqa.base/solutions/org.mpsqa.base.errors_suppressor.pluginSolution/models/org.mpsqa.base.errors_suppressor.pluginSolution.plugin.mps
@@ -411,116 +411,130 @@
       <node concept="3cqZAl" id="1DrnXKMVQND" role="3clF45" />
       <node concept="3Tm1VV" id="1DrnXKMVQNE" role="1B3o_S" />
       <node concept="3clFbS" id="1DrnXKMVQNF" role="3clF47">
-        <node concept="L3pyB" id="1DrnXKMWSaZ" role="3cqZAp">
-          <node concept="3clFbS" id="1DrnXKMWSb1" role="L3pyw">
-            <node concept="2Gpval" id="1DrnXKMWTPW" role="3cqZAp">
-              <node concept="2GrKxI" id="1DrnXKMWTQ0" role="2Gsz3X">
-                <property role="TrG5h" value="cfg" />
-              </node>
-              <node concept="3clFbS" id="1DrnXKMWTQ8" role="2LFqv$">
-                <node concept="3cpWs8" id="28p3jNfoCSX" role="3cqZAp">
-                  <node concept="3cpWsn" id="28p3jNfoCSY" role="3cpWs9">
-                    <property role="TrG5h" value="info" />
-                    <node concept="3uibUv" id="28p3jNfoCSZ" role="1tU5fm">
-                      <ref role="3uigEE" node="28p3jNfoqlK" resolve="SuppressCheckerResults.MessageInfo" />
+        <node concept="1QHqEK" id="6Mo489ALqoQ" role="3cqZAp">
+          <node concept="1QHqEC" id="6Mo489ALqoS" role="1QHqEI">
+            <node concept="3clFbS" id="6Mo489ALqoU" role="1bW5cS">
+              <node concept="L3pyB" id="1DrnXKMWSaZ" role="3cqZAp">
+                <node concept="3clFbS" id="1DrnXKMWSb1" role="L3pyw">
+                  <node concept="2Gpval" id="1DrnXKMWTPW" role="3cqZAp">
+                    <node concept="2GrKxI" id="1DrnXKMWTQ0" role="2Gsz3X">
+                      <property role="TrG5h" value="cfg" />
                     </node>
-                    <node concept="2ry78W" id="28p3jNfoGL6" role="33vP2m">
-                      <ref role="2ryb1Q" node="28p3jNfoqlK" resolve="SuppressCheckerResults.MessageInfo" />
-                      <node concept="2r$n1x" id="28p3jNfoHko" role="2r_Bvh">
-                        <ref role="2r$qp6" node="28p3jNfot$J" resolve="status" />
-                        <node concept="3K4zz7" id="1DrnXKMXYTi" role="2r_lH1">
-                          <node concept="Rm8GO" id="1DrnXKMXZ3s" role="3K4E3e">
-                            <ref role="Rm8GQ" to="2gg1:~MessageStatus.ERROR" resolve="ERROR" />
-                            <ref role="1Px2BO" to="2gg1:~MessageStatus" resolve="MessageStatus" />
+                    <node concept="3clFbS" id="1DrnXKMWTQ8" role="2LFqv$">
+                      <node concept="3cpWs8" id="28p3jNfoCSX" role="3cqZAp">
+                        <node concept="3cpWsn" id="28p3jNfoCSY" role="3cpWs9">
+                          <property role="TrG5h" value="info" />
+                          <node concept="3uibUv" id="28p3jNfoCSZ" role="1tU5fm">
+                            <ref role="3uigEE" node="28p3jNfoqlK" resolve="SuppressCheckerResults.MessageInfo" />
                           </node>
-                          <node concept="2OqwBi" id="1DrnXKMXY52" role="3K4Cdx">
-                            <node concept="2OqwBi" id="1DrnXKMWZYK" role="2Oq$k0">
-                              <node concept="2GrUjf" id="1DrnXKMWZvM" role="2Oq$k0">
-                                <ref role="2Gs0qQ" node="1DrnXKMWTQ0" resolve="cfg" />
-                              </node>
-                              <node concept="3TrcHB" id="1DrnXKMX07Q" role="2OqNvi">
-                                <ref role="3TsBF5" to="hkkt:1DrnXKMSp7J" resolve="severity" />
-                              </node>
-                            </node>
-                            <node concept="21noJN" id="1DrnXKMXYt5" role="2OqNvi">
-                              <node concept="21nZrQ" id="1DrnXKMXYt7" role="21noJM">
-                                <ref role="21nZrZ" to="hkkt:1DrnXKMSoVr" resolve="ERROR" />
-                              </node>
-                            </node>
-                          </node>
-                          <node concept="3K4zz7" id="1DrnXKMY1A$" role="3K4GZi">
-                            <node concept="Rm8GO" id="1DrnXKMY1M7" role="3K4E3e">
-                              <ref role="Rm8GQ" to="2gg1:~MessageStatus.WARNING" resolve="WARNING" />
-                              <ref role="1Px2BO" to="2gg1:~MessageStatus" resolve="MessageStatus" />
-                            </node>
-                            <node concept="Rm8GO" id="1DrnXKMY1VX" role="3K4GZi">
-                              <ref role="Rm8GQ" to="2gg1:~MessageStatus.OK" resolve="OK" />
-                              <ref role="1Px2BO" to="2gg1:~MessageStatus" resolve="MessageStatus" />
-                            </node>
-                            <node concept="2OqwBi" id="1DrnXKMXZgF" role="3K4Cdx">
-                              <node concept="2OqwBi" id="1DrnXKMXZgG" role="2Oq$k0">
-                                <node concept="2GrUjf" id="1DrnXKMXZgH" role="2Oq$k0">
-                                  <ref role="2Gs0qQ" node="1DrnXKMWTQ0" resolve="cfg" />
+                          <node concept="2ry78W" id="28p3jNfoGL6" role="33vP2m">
+                            <ref role="2ryb1Q" node="28p3jNfoqlK" resolve="SuppressCheckerResults.MessageInfo" />
+                            <node concept="2r$n1x" id="28p3jNfoHko" role="2r_Bvh">
+                              <ref role="2r$qp6" node="28p3jNfot$J" resolve="status" />
+                              <node concept="3K4zz7" id="1DrnXKMXYTi" role="2r_lH1">
+                                <node concept="Rm8GO" id="1DrnXKMXZ3s" role="3K4E3e">
+                                  <ref role="Rm8GQ" to="2gg1:~MessageStatus.ERROR" resolve="ERROR" />
+                                  <ref role="1Px2BO" to="2gg1:~MessageStatus" resolve="MessageStatus" />
                                 </node>
-                                <node concept="3TrcHB" id="1DrnXKMXZgI" role="2OqNvi">
-                                  <ref role="3TsBF5" to="hkkt:1DrnXKMSp7J" resolve="severity" />
+                                <node concept="2OqwBi" id="1DrnXKMXY52" role="3K4Cdx">
+                                  <node concept="2OqwBi" id="1DrnXKMWZYK" role="2Oq$k0">
+                                    <node concept="2GrUjf" id="1DrnXKMWZvM" role="2Oq$k0">
+                                      <ref role="2Gs0qQ" node="1DrnXKMWTQ0" resolve="cfg" />
+                                    </node>
+                                    <node concept="3TrcHB" id="1DrnXKMX07Q" role="2OqNvi">
+                                      <ref role="3TsBF5" to="hkkt:1DrnXKMSp7J" resolve="severity" />
+                                    </node>
+                                  </node>
+                                  <node concept="21noJN" id="1DrnXKMXYt5" role="2OqNvi">
+                                    <node concept="21nZrQ" id="1DrnXKMXYt7" role="21noJM">
+                                      <ref role="21nZrZ" to="hkkt:1DrnXKMSoVr" resolve="ERROR" />
+                                    </node>
+                                  </node>
+                                </node>
+                                <node concept="3K4zz7" id="1DrnXKMY1A$" role="3K4GZi">
+                                  <node concept="Rm8GO" id="1DrnXKMY1M7" role="3K4E3e">
+                                    <ref role="Rm8GQ" to="2gg1:~MessageStatus.WARNING" resolve="WARNING" />
+                                    <ref role="1Px2BO" to="2gg1:~MessageStatus" resolve="MessageStatus" />
+                                  </node>
+                                  <node concept="Rm8GO" id="1DrnXKMY1VX" role="3K4GZi">
+                                    <ref role="Rm8GQ" to="2gg1:~MessageStatus.OK" resolve="OK" />
+                                    <ref role="1Px2BO" to="2gg1:~MessageStatus" resolve="MessageStatus" />
+                                  </node>
+                                  <node concept="2OqwBi" id="1DrnXKMXZgF" role="3K4Cdx">
+                                    <node concept="2OqwBi" id="1DrnXKMXZgG" role="2Oq$k0">
+                                      <node concept="2GrUjf" id="1DrnXKMXZgH" role="2Oq$k0">
+                                        <ref role="2Gs0qQ" node="1DrnXKMWTQ0" resolve="cfg" />
+                                      </node>
+                                      <node concept="3TrcHB" id="1DrnXKMXZgI" role="2OqNvi">
+                                        <ref role="3TsBF5" to="hkkt:1DrnXKMSp7J" resolve="severity" />
+                                      </node>
+                                    </node>
+                                    <node concept="21noJN" id="1DrnXKMXZgJ" role="2OqNvi">
+                                      <node concept="21nZrQ" id="1DrnXKMXZgK" role="21noJM">
+                                        <ref role="21nZrZ" to="hkkt:1DrnXKMSp1W" resolve="WARNING" />
+                                      </node>
+                                    </node>
+                                  </node>
                                 </node>
                               </node>
-                              <node concept="21noJN" id="1DrnXKMXZgJ" role="2OqNvi">
-                                <node concept="21nZrQ" id="1DrnXKMXZgK" role="21noJM">
-                                  <ref role="21nZrZ" to="hkkt:1DrnXKMSp1W" resolve="WARNING" />
+                            </node>
+                            <node concept="2r$n1x" id="28p3jNfoIz9" role="2r_Bvh">
+                              <ref role="2r$qp6" node="28p3jNfoyoI" resolve="suppressInEditor" />
+                              <node concept="3fqX7Q" id="28p3jNfoKm_" role="2r_lH1">
+                                <node concept="2OqwBi" id="28p3jNfoKmB" role="3fr31v">
+                                  <node concept="2GrUjf" id="28p3jNfoKmC" role="2Oq$k0">
+                                    <ref role="2Gs0qQ" node="1DrnXKMWTQ0" resolve="cfg" />
+                                  </node>
+                                  <node concept="3TrcHB" id="28p3jNfoKmD" role="2OqNvi">
+                                    <ref role="3TsBF5" to="hkkt:28p3jNfo5_$" resolve="disableInEditor" />
+                                  </node>
                                 </node>
                               </node>
                             </node>
                           </node>
                         </node>
                       </node>
-                      <node concept="2r$n1x" id="28p3jNfoIz9" role="2r_Bvh">
-                        <ref role="2r$qp6" node="28p3jNfoyoI" resolve="suppressInEditor" />
-                        <node concept="3fqX7Q" id="28p3jNfoKm_" role="2r_lH1">
-                          <node concept="2OqwBi" id="28p3jNfoKmB" role="3fr31v">
-                            <node concept="2GrUjf" id="28p3jNfoKmC" role="2Oq$k0">
-                              <ref role="2Gs0qQ" node="1DrnXKMWTQ0" resolve="cfg" />
+                      <node concept="3clFbF" id="1DrnXKMWU44" role="3cqZAp">
+                        <node concept="37vLTI" id="1DrnXKMWYtW" role="3clFbG">
+                          <node concept="3EllGN" id="1DrnXKMWXln" role="37vLTJ">
+                            <node concept="2OqwBi" id="1DrnXKMWXVz" role="3ElVtu">
+                              <node concept="2GrUjf" id="1DrnXKMWXN5" role="2Oq$k0">
+                                <ref role="2Gs0qQ" node="1DrnXKMWTQ0" resolve="cfg" />
+                              </node>
+                              <node concept="3TrcHB" id="1DrnXKMWYgh" role="2OqNvi">
+                                <ref role="3TsBF5" to="hkkt:1DrnXKMSlX1" resolve="regex" />
+                              </node>
                             </node>
-                            <node concept="3TrcHB" id="28p3jNfoKmD" role="2OqNvi">
-                              <ref role="3TsBF5" to="hkkt:28p3jNfo5_$" resolve="disableInEditor" />
+                            <node concept="37vLTw" id="1DrnXKMWU43" role="3ElQJh">
+                              <ref role="3cqZAo" node="1DrnXKMWwzj" resolve="regex2severity" />
                             </node>
                           </node>
+                          <node concept="37vLTw" id="28p3jNfoKxG" role="37vLTx">
+                            <ref role="3cqZAo" node="28p3jNfoCSY" resolve="info" />
+                          </node>
                         </node>
                       </node>
                     </node>
-                  </node>
-                </node>
-                <node concept="3clFbF" id="1DrnXKMWU44" role="3cqZAp">
-                  <node concept="37vLTI" id="1DrnXKMWYtW" role="3clFbG">
-                    <node concept="3EllGN" id="1DrnXKMWXln" role="37vLTJ">
-                      <node concept="2OqwBi" id="1DrnXKMWXVz" role="3ElVtu">
-                        <node concept="2GrUjf" id="1DrnXKMWXN5" role="2Oq$k0">
-                          <ref role="2Gs0qQ" node="1DrnXKMWTQ0" resolve="cfg" />
-                        </node>
-                        <node concept="3TrcHB" id="1DrnXKMWYgh" role="2OqNvi">
-                          <ref role="3TsBF5" to="hkkt:1DrnXKMSlX1" resolve="regex" />
-                        </node>
-                      </node>
-                      <node concept="37vLTw" id="1DrnXKMWU43" role="3ElQJh">
-                        <ref role="3cqZAo" node="1DrnXKMWwzj" resolve="regex2severity" />
+                    <node concept="qVDSY" id="1DrnXKMWTvN" role="2GsD0m">
+                      <node concept="chp4Y" id="1DrnXKMWTxp" role="qVDSX">
+                        <ref role="cht4Q" to="hkkt:1DrnXKMSl8W" resolve="SingleCheckingResultSuppressorConfig" />
                       </node>
                     </node>
-                    <node concept="37vLTw" id="28p3jNfoKxG" role="37vLTx">
-                      <ref role="3cqZAo" node="28p3jNfoCSY" resolve="info" />
-                    </node>
                   </node>
                 </node>
-              </node>
-              <node concept="qVDSY" id="1DrnXKMWTvN" role="2GsD0m">
-                <node concept="chp4Y" id="1DrnXKMWTxp" role="qVDSX">
-                  <ref role="cht4Q" to="hkkt:1DrnXKMSl8W" resolve="SingleCheckingResultSuppressorConfig" />
+                <node concept="37vLTw" id="1DrnXKMWSBW" role="L3pyr">
+                  <ref role="3cqZAo" node="1DrnXKMVTtd" resolve="proj" />
                 </node>
               </node>
             </node>
           </node>
-          <node concept="37vLTw" id="1DrnXKMWSBW" role="L3pyr">
-            <ref role="3cqZAo" node="1DrnXKMVTtd" resolve="proj" />
+          <node concept="2OqwBi" id="6Mo489ALr$6" role="ukAjM">
+            <node concept="37vLTw" id="6Mo489ALqS0" role="2Oq$k0">
+              <ref role="3cqZAo" node="1DrnXKMVTtd" resolve="proj" />
+            </node>
+            <node concept="liA8E" id="6Mo489ALtjN" role="2OqNvi">
+              <ref role="37wK5l" to="z1c3:~Project.getRepository()" resolve="getRepository" />
+            </node>
           </node>
         </node>
       </node>

From c588027e19efe5e2f04a05973388d100b6f4bdf2 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Fri, 20 Sep 2024 10:11:09 +0200
Subject: [PATCH 23/42] cleanup dependencies and update the build script

---
 .../org.mpsqa.arch/models/org.mpsqa.arch.editor.mps |  5 -----
 .../languages/org.mpsqa.arch/org.mpsqa.arch.mpl     |  6 +-----
 .../org.mpsqa.arch.pluginSolution.msd               |  3 ---
 .../models/org.mpsqa.build._060_arch_build.mps      | 13 ++++++++-----
 4 files changed, 9 insertions(+), 18 deletions(-)

diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
index 1ef6de8b..6775a04e 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
@@ -9,13 +9,8 @@
   <imports>
     <import index="z60i" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.awt(JDK/)" />
     <import index="u41u" ref="r:88cf32d8-7e39-47c5-b37a-24d1801279ce(org.mpsqa.arch.util)" />
-    <import index="lui2" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.module(MPS.OpenAPI/)" />
     <import index="25zl" ref="r:7bd127a5-e641-4c13-b150-b9c9b96f76ae(jetbrains.mps.lang.modelapi.editor)" />
-    <import index="exr9" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/java:jetbrains.mps.nodeEditor(MPS.Editor/)" />
-    <import index="g51k" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/java:jetbrains.mps.nodeEditor.cells(MPS.Editor/)" />
     <import index="cj4x" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/java:jetbrains.mps.openapi.editor(MPS.Editor/)" />
-    <import index="f4zo" ref="1ed103c3-3aa6-49b7-9c21-6765ee11f224/java:jetbrains.mps.openapi.editor.cells(MPS.Editor/)" />
-    <import index="k8ev" ref="r:f39afe13-666a-48f2-9d7c-2f9366f78fe5(jetbrains.mps.typesystemEngine.checker)" />
     <import index="ryx8" ref="r:d0c25d1d-f21e-42b4-b319-5eef0584d5ca(org.mpsqa.arch.structure)" implicit="true" />
     <import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
     <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/org.mpsqa.arch.mpl b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/org.mpsqa.arch.mpl
index 825ea08a..4309d95a 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/org.mpsqa.arch.mpl
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/org.mpsqa.arch.mpl
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <language namespace="org.mpsqa.arch" uuid="6c101563-ba1f-458d-b298-a75634941e0c" languageVersion="0" moduleVersion="0">
   <models>
-    <modelRoot contentPath="${module}" type="default">
+    <modelRoot type="default" contentPath="${module}">
       <sourceRoot location="models" />
     </modelRoot>
   </models>
@@ -20,8 +20,6 @@
     <dependency reexport="false">6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)</dependency>
     <dependency reexport="false">1ed103c3-3aa6-49b7-9c21-6765ee11f224(MPS.Editor)</dependency>
     <dependency reexport="false">c7fb639f-be78-4307-89b0-b5959c3fa8c8(jetbrains.mps.lang.text)</dependency>
-    <dependency reexport="false">86ef8290-12bb-4ca7-947f-093788f263a9(jetbrains.mps.lang.project)</dependency>
-    <dependency reexport="false">20c6e580-bdc5-4067-8049-d7e3265a86de(jetbrains.mps.typesystemEngine)</dependency>
   </dependencies>
   <languageVersions>
     <language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
@@ -78,13 +76,11 @@
     <module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
     <module reference="a9e4c532-c5f5-4bb7-99ef-42abb73bbb70(jetbrains.mps.lang.descriptor.aspects)" version="0" />
     <module reference="446c26eb-2b7b-4bf0-9b35-f83fa582753e(jetbrains.mps.lang.modelapi)" version="0" />
-    <module reference="86ef8290-12bb-4ca7-947f-093788f263a9(jetbrains.mps.lang.project)" version="0" />
     <module reference="d7eb0a2a-bd50-4576-beae-e4a89db35f20(jetbrains.mps.lang.scopes.runtime)" version="0" />
     <module reference="7866978e-a0f0-4cc7-81bc-4d213d9375e1(jetbrains.mps.lang.smodel)" version="1" />
     <module reference="c72da2b9-7cce-4447-8389-f407dc1158b7(jetbrains.mps.lang.structure)" version="0" />
     <module reference="c7fb639f-be78-4307-89b0-b5959c3fa8c8(jetbrains.mps.lang.text)" version="0" />
     <module reference="9ded098b-ad6a-4657-bfd9-48636cfe8bc3(jetbrains.mps.lang.traceable)" version="0" />
-    <module reference="20c6e580-bdc5-4067-8049-d7e3265a86de(jetbrains.mps.typesystemEngine)" version="0" />
     <module reference="6c101563-ba1f-458d-b298-a75634941e0c(org.mpsqa.arch)" version="0" />
   </dependencyVersions>
   <extendedLanguages />
diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
index 23229811..6c5dfd22 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
@@ -7,9 +7,6 @@
     <modelRoot type="java_classes" contentPath="${module}/lib">
       <sourceRoot location="plantuml-asl-1.2023.13.jar" />
     </modelRoot>
-    <modelRoot type="java_classes" contentPath="${module}/lib/plantuml-1.2022.6.jar!/">
-      <sourceRoot location="." />
-    </modelRoot>
   </models>
   <facets>
     <facet type="java" compile="mps" classes="mps" ext="yes">
diff --git a/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._060_arch_build.mps b/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._060_arch_build.mps
index ab13d6d5..5698e796 100644
--- a/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._060_arch_build.mps
+++ b/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._060_arch_build.mps
@@ -255,6 +255,9 @@
       <node concept="m$_yC" id="50Wzfz4shzl" role="m$_yJ">
         <ref role="m$_y1" to="2tou:7C9PHv6FBIO" resolve="org.mpsqa.base" />
       </node>
+      <node concept="m$_yC" id="2VR19mpiUGU" role="m$_yJ">
+        <ref role="m$_y1" to="ffeo:5lGJ4TajoV9" resolve="jetbrains.mps.ide.migration.workbench" />
+      </node>
       <node concept="3_J27D" id="50Wzfz4shzm" role="m_cZH">
         <node concept="3Mxwew" id="50Wzfz4shzu" role="3MwsjC">
           <property role="3MwjfP" value="org.mpsqa.arch" />
@@ -352,11 +355,6 @@
             <ref role="3bR37D" to="ffeo:3HV74$ebibC" resolve="jetbrains.mps.lang.text" />
           </node>
         </node>
-        <node concept="1SiIV0" id="5enppyYG89E" role="3bR37C">
-          <node concept="3bR9La" id="5enppyYG89F" role="1SiIV1">
-            <ref role="3bR37D" to="ffeo:7Kfy9QB6L8Y" resolve="jetbrains.mps.lang.project" />
-          </node>
-        </node>
       </node>
       <node concept="1E1JtA" id="50Wzfz4sh$A" role="2G$12L">
         <property role="BnDLt" value="true" />
@@ -471,6 +469,11 @@
             </node>
           </node>
         </node>
+        <node concept="1SiIV0" id="2VR19mpiUB5" role="3bR37C">
+          <node concept="3bR9La" id="2VR19mpiUB6" role="1SiIV1">
+            <ref role="3bR37D" to="ffeo:2eDSGe9d1q1" resolve="MPS.Workbench" />
+          </node>
+        </node>
       </node>
     </node>
     <node concept="2G$12M" id="GdL2Wddnv9" role="3989C9">

From 6a2968f52ce15932305f00fd87ffd4d2d7e6aa2c Mon Sep 17 00:00:00 2001
From: Daniel Ratiu <ratiud@googlemail.com>
Date: Tue, 24 Sep 2024 00:01:41 +0200
Subject: [PATCH 24/42] mpsqa.arch.editor: fixed editors according to
 discussion with Sergey and Alex

---
 .../models/org.mpsqa.arch.editor.mps          | 43 ++++---------------
 1 file changed, 9 insertions(+), 34 deletions(-)

diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
index 6775a04e..fb8192e0 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
@@ -170,7 +170,6 @@
       <concept id="1068580123155" name="jetbrains.mps.baseLanguage.structure.ExpressionStatement" flags="nn" index="3clFbF">
         <child id="1068580123156" name="expression" index="3clFbG" />
       </concept>
-      <concept id="1068580123157" name="jetbrains.mps.baseLanguage.structure.Statement" flags="nn" index="3clFbH" />
       <concept id="1068580123159" name="jetbrains.mps.baseLanguage.structure.IfStatement" flags="nn" index="3clFbJ">
         <child id="1068580123160" name="condition" index="3clFbw" />
         <child id="1068580123161" name="ifTrue" index="3clFbx" />
@@ -226,10 +225,6 @@
       <concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
       <concept id="1171305280644" name="jetbrains.mps.lang.smodel.structure.Node_GetDescendantsOperation" flags="nn" index="2Rf3mk" />
       <concept id="1139184414036" name="jetbrains.mps.lang.smodel.structure.LinkList_AddNewChildOperation" flags="nn" index="WFELt" />
-      <concept id="1139613262185" name="jetbrains.mps.lang.smodel.structure.Node_GetParentOperation" flags="nn" index="1mfA1w" />
-      <concept id="1139621453865" name="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" flags="nn" index="1mIQ4w">
-        <child id="1177027386292" name="conceptArgument" index="cj9EA" />
-      </concept>
       <concept id="1172008320231" name="jetbrains.mps.lang.smodel.structure.Node_IsNotNullOperation" flags="nn" index="3x8VRR" />
       <concept id="1144101972840" name="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" flags="ng" index="1xMEDy">
         <child id="1207343664468" name="conceptArgument" index="ri$Ld" />
@@ -601,7 +596,7 @@
           </node>
         </node>
         <node concept="VechU" id="Te1zv$_lnw" role="3F10Kt">
-          <property role="Vb096" value="fLwANPp/orange" />
+          <property role="Vb096" value="fLwANPn/red" />
         </node>
       </node>
     </node>
@@ -662,7 +657,7 @@
       <node concept="3EZMnI" id="6MUZd5Uj9wO" role="3EZMnx">
         <node concept="VPM3Z" id="6MUZd5Uj9wQ" role="3F10Kt" />
         <node concept="3F0ifn" id="6MUZd5Uj9wY" role="3EZMnx">
-          <property role="3F0ifm" value="component" />
+          <property role="3F0ifm" value="component definition:" />
         </node>
         <node concept="3F0A7n" id="6MUZd5Uj9x4" role="3EZMnx">
           <ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
@@ -760,6 +755,9 @@
         <ref role="PMmxG" node="2p0G1uTtlry" resolve="CommentEditorComponent" />
       </node>
       <node concept="3EZMnI" id="6MUZd5Uje4m" role="3EZMnx">
+        <node concept="3F0ifn" id="7_XHz4_yDdU" role="3EZMnx">
+          <property role="3F0ifm" value="mps-module:" />
+        </node>
         <node concept="1iCGBv" id="sRpFtPvXu7" role="3EZMnx">
           <ref role="1NtTu8" to="ryx8:6MUZd5Uje4i" resolve="module" />
           <node concept="1sVBvm" id="sRpFtPvXu9" role="1sWHZn">
@@ -780,9 +778,6 @@
           <property role="1$x2rV" value="no short name" />
           <ref role="1NtTu8" to="ryx8:fm3v0WReOV" resolve="shortName" />
         </node>
-        <node concept="3F0ifn" id="sRpFtPwKen" role="3EZMnx">
-          <property role="3F0ifm" value="(module component)" />
-        </node>
         <node concept="18a60v" id="fm3v0X15X2" role="3EZMnx">
           <node concept="VPM3Z" id="fm3v0X15X4" role="3F10Kt" />
         </node>
@@ -853,7 +848,7 @@
       </node>
       <node concept="3EZMnI" id="fm3v0WRQHA" role="AHCbl">
         <node concept="3F0ifn" id="fm3v0WRQHB" role="3EZMnx">
-          <property role="3F0ifm" value="module component:" />
+          <property role="3F0ifm" value="mps-module:" />
         </node>
         <node concept="3F1sOY" id="fm3v0WRQHC" role="3EZMnx">
           <ref role="1NtTu8" to="ryx8:6MUZd5Uje4i" resolve="module" />
@@ -874,35 +869,15 @@
     <property role="3GE5qa" value="dependencies" />
     <ref role="1XX52x" to="ryx8:6MUZd5Uj9MQ" resolve="ComponentDependency" />
     <node concept="3EZMnI" id="6MUZd5UjK7P" role="2wV5jI">
+      <node concept="3F0ifn" id="6MUZd5UjK7W" role="3EZMnx">
+        <property role="3F0ifm" value="depends on:" />
+      </node>
       <node concept="3F2HdR" id="6MUZd5UjK82" role="3EZMnx">
         <property role="2czwfO" value="," />
         <ref role="1NtTu8" to="ryx8:6MUZd5UjK7L" resolve="dependsOn" />
         <node concept="2iRfu4" id="6MUZd5UjK84" role="2czzBx" />
       </node>
       <node concept="2iRfu4" id="6MUZd5UjK7S" role="2iSdaV" />
-      <node concept="3F0ifn" id="sRpFtPwkHt" role="3EZMnx">
-        <property role="3F0ifm" value="(dependency)" />
-        <node concept="pkWqt" id="sRpFtPwyTO" role="pqm2j">
-          <node concept="3clFbS" id="sRpFtPwyTP" role="2VODD2">
-            <node concept="3clFbF" id="sRpFtPwyUO" role="3cqZAp">
-              <node concept="3fqX7Q" id="sRpFtPw$As" role="3clFbG">
-                <node concept="2OqwBi" id="sRpFtPw$Au" role="3fr31v">
-                  <node concept="2OqwBi" id="sRpFtPw$Av" role="2Oq$k0">
-                    <node concept="pncrf" id="sRpFtPw$Aw" role="2Oq$k0" />
-                    <node concept="1mfA1w" id="sRpFtPw$Ax" role="2OqNvi" />
-                  </node>
-                  <node concept="1mIQ4w" id="sRpFtPw$Ay" role="2OqNvi">
-                    <node concept="chp4Y" id="sRpFtPw$Az" role="cj9EA">
-                      <ref role="cht4Q" to="ryx8:6MUZd5Uje4h" resolve="ModuleComponent" />
-                    </node>
-                  </node>
-                </node>
-              </node>
-            </node>
-            <node concept="3clFbH" id="sRpFtPw$A_" role="3cqZAp" />
-          </node>
-        </node>
-      </node>
     </node>
   </node>
   <node concept="24kQdi" id="fm3v0WWntN">

From 9f47200292127f2c90561311494d536062f01efd Mon Sep 17 00:00:00 2001
From: Daniel Ratiu <ratiud@googlemail.com>
Date: Tue, 24 Sep 2024 00:02:03 +0200
Subject: [PATCH 25/42] mpsqa.arch.intention: added intention to remove
 dependencies strenghts

---
 .../models/org.mpsqa.arch.intentions.mps      | 37 ++++++++++++++
 .../models/org.mpsqa.arch.util.mps            | 51 +++++++++++++++++++
 2 files changed, 88 insertions(+)

diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps
index 46acecbc..c4a64b83 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps
@@ -575,5 +575,42 @@
       </node>
     </node>
   </node>
+  <node concept="2S6QgY" id="7_XHz4_A87Q">
+    <property role="TrG5h" value="removeDependenciesStrengths" />
+    <ref role="2ZfgGC" to="ryx8:6MUZd5UjGNW" resolve="IComponentLike" />
+    <node concept="2S6ZIM" id="7_XHz4_A87R" role="2ZfVej">
+      <node concept="3clFbS" id="7_XHz4_A87S" role="2VODD2">
+        <node concept="3clFbF" id="7_XHz4_A87T" role="3cqZAp">
+          <node concept="Xl_RD" id="7_XHz4_A87U" role="3clFbG">
+            <property role="Xl_RC" value="Remove Dependencies Strengths" />
+          </node>
+        </node>
+      </node>
+    </node>
+    <node concept="2Sbjvc" id="7_XHz4_A87V" role="2ZfgGD">
+      <node concept="3clFbS" id="7_XHz4_A87W" role="2VODD2">
+        <node concept="3clFbF" id="7_XHz4_A87X" role="3cqZAp">
+          <node concept="2YIFZM" id="7_XHz4_A8mY" role="3clFbG">
+            <ref role="37wK5l" to="u41u:7_XHz4_A7kv" resolve="removeDependenciesStrengths" />
+            <ref role="1Pybhc" to="u41u:1XeVdf85BSu" resolve="DependencyStrengthUtils" />
+            <node concept="2Sf5sV" id="7_XHz4_A8mZ" role="37wK5m" />
+          </node>
+        </node>
+        <node concept="3clFbF" id="7_XHz4_A883" role="3cqZAp">
+          <node concept="2OqwBi" id="7_XHz4_A884" role="3clFbG">
+            <node concept="2OqwBi" id="7_XHz4_A885" role="2Oq$k0">
+              <node concept="1XNTG" id="7_XHz4_A886" role="2Oq$k0" />
+              <node concept="liA8E" id="7_XHz4_A887" role="2OqNvi">
+                <ref role="37wK5l" to="cj4x:~EditorContext.getEditorComponent()" resolve="getEditorComponent" />
+              </node>
+            </node>
+            <node concept="liA8E" id="7_XHz4_A888" role="2OqNvi">
+              <ref role="37wK5l" to="cj4x:~EditorComponent.rebuildEditorContent()" resolve="rebuildEditorContent" />
+            </node>
+          </node>
+        </node>
+      </node>
+    </node>
+  </node>
 </model>
 
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.util.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.util.mps
index b6d4af34..3749d851 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.util.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.util.mps
@@ -1199,6 +1199,57 @@
         </node>
       </node>
     </node>
+    <node concept="2tJIrI" id="7_XHz4_A7z4" role="jymVt" />
+    <node concept="2YIFZL" id="7_XHz4_A7kv" role="jymVt">
+      <property role="TrG5h" value="removeDependenciesStrengths" />
+      <node concept="3clFbS" id="7_XHz4_A7kw" role="3clF47">
+        <node concept="3clFbF" id="7_XHz4_A7kx" role="3cqZAp">
+          <node concept="2OqwBi" id="7_XHz4_A7ky" role="3clFbG">
+            <node concept="2OqwBi" id="7_XHz4_A7kz" role="2Oq$k0">
+              <node concept="37vLTw" id="7_XHz4_A7k$" role="2Oq$k0">
+                <ref role="3cqZAo" node="7_XHz4_A7kU" resolve="cl" />
+              </node>
+              <node concept="2Rf3mk" id="7_XHz4_A7k_" role="2OqNvi">
+                <node concept="1xMEDy" id="7_XHz4_A7kA" role="1xVPHs">
+                  <node concept="chp4Y" id="7_XHz4_A7kB" role="ri$Ld">
+                    <ref role="cht4Q" to="ryx8:6MUZd5Uj9wl" resolve="SingleComponentDependency" />
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="2es0OD" id="7_XHz4_A7kC" role="2OqNvi">
+              <node concept="1bVj0M" id="7_XHz4_A7kD" role="23t8la">
+                <node concept="3clFbS" id="7_XHz4_A7kE" role="1bW5cS">
+                  <node concept="3clFbF" id="7_XHz4_A7kL" role="3cqZAp">
+                    <node concept="2OqwBi" id="7_XHz4_A7kM" role="3clFbG">
+                      <node concept="37vLTw" id="7_XHz4_A7kN" role="2Oq$k0">
+                        <ref role="3cqZAo" node="7_XHz4_A7kQ" resolve="it" />
+                      </node>
+                      <node concept="2qgKlT" id="7_XHz4_A7kO" role="2OqNvi">
+                        <ref role="37wK5l" to="lm2w:4n1yOK3eIYG" resolve="setReferencedNodes" />
+                        <node concept="10Nm6u" id="7_XHz4_A7Tr" role="37wK5m" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+                <node concept="Rh6nW" id="7_XHz4_A7kQ" role="1bW2Oz">
+                  <property role="TrG5h" value="it" />
+                  <node concept="2jxLKc" id="7_XHz4_A7kR" role="1tU5fm" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="3Tm1VV" id="7_XHz4_A7kS" role="1B3o_S" />
+      <node concept="3cqZAl" id="7_XHz4_A7kT" role="3clF45" />
+      <node concept="37vLTG" id="7_XHz4_A7kU" role="3clF46">
+        <property role="TrG5h" value="cl" />
+        <node concept="3Tqbb2" id="7_XHz4_A7kV" role="1tU5fm">
+          <ref role="ehGHo" to="ryx8:6MUZd5UjGNW" resolve="IComponentLike" />
+        </node>
+      </node>
+    </node>
     <node concept="2tJIrI" id="1XeVdf8h2eu" role="jymVt" />
     <node concept="3Tm1VV" id="1XeVdf85BSv" role="1B3o_S" />
   </node>

From 84bb05c98c8678eef4b09312069819a2ed70d9d1 Mon Sep 17 00:00:00 2001
From: Daniel Ratiu <ratiud@googlemail.com>
Date: Tue, 24 Sep 2024 00:03:39 +0200
Subject: [PATCH 26/42] mpsqa.arch.structure: better alias

---
 .../org.mpsqa.arch/models/org.mpsqa.arch.structure.mps        | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.structure.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.structure.mps
index fb4a2d8d..d93467b3 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.structure.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.structure.mps
@@ -24,6 +24,7 @@
       </concept>
       <concept id="1169125787135" name="jetbrains.mps.lang.structure.structure.AbstractConceptDeclaration" flags="ig" index="PkWjJ">
         <property id="6714410169261853888" name="conceptId" index="EcuMT" />
+        <property id="4628067390765907488" name="conceptShortDescription" index="R4oN_" />
         <property id="5092175715804935370" name="conceptAlias" index="34LRSv" />
         <child id="1071489727083" name="linkDeclaration" index="1TKVEi" />
         <child id="1071489727084" name="propertyDeclaration" index="1TKVEl" />
@@ -172,7 +173,8 @@
   <node concept="1TIwiD" id="6MUZd5Uje4h">
     <property role="EcuMT" value="7834852478394622225" />
     <property role="TrG5h" value="ModuleComponent" />
-    <property role="34LRSv" value="module component" />
+    <property role="34LRSv" value="mps-module" />
+    <property role="R4oN_" value="a MPS module (solution or language)" />
     <ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
     <node concept="1TJgyj" id="6MUZd5Uje4i" role="1TKVEi">
       <property role="IQ2ns" value="7834852478394622226" />

From f679627696e4f57ba238a04085f8913eb1b74b2d Mon Sep 17 00:00:00 2001
From: Daniel Ratiu <ratiud@googlemail.com>
Date: Tue, 24 Sep 2024 00:04:01 +0200
Subject: [PATCH 27/42] mpsqa.arch.behavior: mini doc

---
 .../models/org.mpsqa.arch.behavior.mps        | 28 ++++++++++++++++++-
 1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
index e767177a..70dc4c36 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
@@ -8,6 +8,7 @@
     <use id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage" version="12" />
     <use id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections" version="1" />
     <use id="fd392034-7849-419d-9071-12563d152375" name="jetbrains.mps.baseLanguage.closures" version="0" />
+    <use id="f2801650-65d5-424e-bb1b-463a8781b786" name="jetbrains.mps.baseLanguage.javadoc" version="2" />
     <devkit ref="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
   </languages>
   <imports>
@@ -141,6 +142,18 @@
         <child id="1199569916463" name="body" index="1bW5cS" />
       </concept>
     </language>
+    <language id="f2801650-65d5-424e-bb1b-463a8781b786" name="jetbrains.mps.baseLanguage.javadoc">
+      <concept id="5349172909345501395" name="jetbrains.mps.baseLanguage.javadoc.structure.BaseDocComment" flags="ng" index="P$AiS">
+        <child id="8465538089690331502" name="body" index="TZ5H$" />
+      </concept>
+      <concept id="5349172909345532724" name="jetbrains.mps.baseLanguage.javadoc.structure.MethodDocComment" flags="ng" index="P$JXv" />
+      <concept id="8465538089690331500" name="jetbrains.mps.baseLanguage.javadoc.structure.CommentLine" flags="ng" index="TZ5HA">
+        <child id="8970989240999019149" name="part" index="1dT_Ay" />
+      </concept>
+      <concept id="8970989240999019143" name="jetbrains.mps.baseLanguage.javadoc.structure.TextCommentLinePart" flags="ng" index="1dT_AC">
+        <property id="8970989240999019144" name="text" index="1dT_AB" />
+      </concept>
+    </language>
     <language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
       <concept id="1177026924588" name="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" flags="nn" index="chp4Y">
         <reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
@@ -192,6 +205,7 @@
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
       <concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
         <property id="1193676396447" name="virtualPackage" index="3GE5qa" />
+        <child id="5169995583184591170" name="smodelAttribute" index="lGtFl" />
       </concept>
       <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
@@ -669,7 +683,7 @@
       </node>
     </node>
     <node concept="13i0hz" id="fm3v0WRLT8" role="13h7CS">
-      <property role="TrG5h" value="getModulesOfImportedModels" />
+      <property role="TrG5h" value="getModulesOnWhichThisModuleDepends" />
       <node concept="3Tm1VV" id="fm3v0WRLT9" role="1B3o_S" />
       <node concept="_YKpA" id="fm3v0WRLY1" role="3clF45">
         <node concept="3uibUv" id="fm3v0WROkK" role="_ZDj9">
@@ -1080,6 +1094,18 @@
           </node>
         </node>
       </node>
+      <node concept="P$JXv" id="7_XHz4_Eb42" role="lGtFl">
+        <node concept="TZ5HA" id="7_XHz4_Eb43" role="TZ5H$">
+          <node concept="1dT_AC" id="7_XHz4_Eb44" role="1dT_Ay">
+            <property role="1dT_AB" value="Returns a list of SModules on which the module associated to this ModuleComponent depends. " />
+          </node>
+        </node>
+        <node concept="TZ5HA" id="7_XHz4_EfKk" role="TZ5H$">
+          <node concept="1dT_AC" id="7_XHz4_EfKl" role="1dT_Ay">
+            <property role="1dT_AB" value="If some models are excluded, then dependencies caused by the other models of the module are considered." />
+          </node>
+        </node>
+      </node>
     </node>
     <node concept="13i0hz" id="fm3v0WTSU$" role="13h7CS">
       <property role="TrG5h" value="getUsedLanguages" />

From a44ec3c1c63817a96b982207bc35ea1016f977e6 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Tue, 24 Sep 2024 11:59:48 +0200
Subject: [PATCH 28/42] run migrations

---
 .../models/org.mpsqa.arch.behavior.mps         |  6 +++---
 .../models/org.mpsqa.arch.constraints.mps      |  2 +-
 .../models/org.mpsqa.arch.typesystem.mps       |  2 +-
 .../org.mpsqa.arch.pluginSolution.plugin.mps   | 18 +++++++++---------
 ...sqa.arch._010_simple_dependencies@tests.mps | 10 +++++-----
 5 files changed, 19 insertions(+), 19 deletions(-)

diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
index 70dc4c36..292facce 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
@@ -550,7 +550,7 @@
               </node>
             </node>
             <node concept="BsUDl" id="fm3v0WWNEM" role="33vP2m">
-              <ref role="37wK5l" node="fm3v0WRLT8" resolve="getModulesOfImportedModels" />
+              <ref role="37wK5l" node="fm3v0WRLT8" resolve="getModulesOnWhichThisModuleDepends" />
             </node>
           </node>
         </node>
@@ -1610,7 +1610,7 @@
             <node concept="2OqwBi" id="fm3v0WXc8T" role="33vP2m">
               <node concept="2OqwBi" id="fm3v0WXc8U" role="2Oq$k0">
                 <node concept="37vLTw" id="sRpFtPzzq9" role="2Oq$k0">
-                  <ref role="3cqZAo" node="sRpFtPzzq3" resolve="moduleId" />
+                  <ref role="3cqZAo" node="sRpFtPzzq3" resolve="modulePointer" />
                 </node>
                 <node concept="2qgKlT" id="fm3v0WXc90" role="2OqNvi">
                   <ref role="37wK5l" to="xlb7:1Bs_61$mqDd" resolve="toModuleReference" />
@@ -1689,7 +1689,7 @@
               <node concept="ANE8D" id="1XeVdf862N0" role="2OqNvi" />
               <node concept="2OqwBi" id="sRpFtPBuVO" role="2Oq$k0">
                 <node concept="BsUDl" id="sRpFtPBu1B" role="2Oq$k0">
-                  <ref role="37wK5l" node="sRpFtPBjJv" resolve="getExcludedModelIDs" />
+                  <ref role="37wK5l" node="sRpFtPBjJv" resolve="getExcludedModelRefs" />
                 </node>
                 <node concept="3$u5V9" id="sRpFtPBvKo" role="2OqNvi">
                   <node concept="1bVj0M" id="sRpFtPBvKq" role="23t8la">
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.constraints.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.constraints.mps
index bbf56ce7..82664109 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.constraints.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.constraints.mps
@@ -230,7 +230,7 @@
             <node concept="2OqwBi" id="1tkdAPw0bC4" role="3clFbG">
               <node concept="2OqwBi" id="6MUZd5UjQS0" role="2Oq$k0">
                 <node concept="37vLTw" id="sRpFtP$A6X" role="2Oq$k0">
-                  <ref role="3cqZAo" node="sRpFtP$A6R" resolve="moduleId" />
+                  <ref role="3cqZAo" node="sRpFtP$A6R" resolve="modulePointer" />
                 </node>
                 <node concept="2qgKlT" id="1tkdAPw0bg6" role="2OqNvi">
                   <ref role="37wK5l" to="xlb7:1Bs_61$mqDd" resolve="toModuleReference" />
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
index b2529447..b37e806e 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
@@ -1100,7 +1100,7 @@
             <ref role="1YBMHb" node="6ESRMYICZ1k" resolve="moduleComponent" />
           </node>
           <node concept="2qgKlT" id="fm3v0WSSGU" role="2OqNvi">
-            <ref role="37wK5l" to="lm2w:fm3v0WRLT8" resolve="getModulesOfImportedModels" />
+            <ref role="37wK5l" to="lm2w:fm3v0WRLT8" resolve="getModulesOnWhichThisModuleDepends" />
           </node>
         </node>
       </node>
diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
index 90db2f20..ba0e6201 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
@@ -473,7 +473,7 @@
           <node concept="3clFbC" id="sRpFtPpoXr" role="3clFbw">
             <node concept="10Nm6u" id="sRpFtPppgb" role="3uHU7w" />
             <node concept="37vLTw" id="sRpFtPpoym" role="3uHU7B">
-              <ref role="3cqZAo" node="1Nl9e7Dz2vq" resolve="depthAndShowModules" />
+              <ref role="3cqZAo" node="1Nl9e7Dz2vq" resolve="configuration" />
             </node>
           </node>
         </node>
@@ -816,7 +816,7 @@
         <node concept="3clFbF" id="fm3v0WVmVI" role="3cqZAp">
           <node concept="2OqwBi" id="fm3v0WVn_A" role="3clFbG">
             <node concept="37vLTw" id="fm3v0WVmVG" role="2Oq$k0">
-              <ref role="3cqZAo" node="fm3v0WVdU5" resolve="buttons" />
+              <ref role="3cqZAo" node="fm3v0WVdU5" resolve="buttonsPanel" />
             </node>
             <node concept="liA8E" id="fm3v0WVopn" role="2OqNvi">
               <ref role="37wK5l" to="z60i:~Component.setSize(int,int)" resolve="setSize" />
@@ -848,7 +848,7 @@
         <node concept="3clFbF" id="fm3v0WV249" role="3cqZAp">
           <node concept="2OqwBi" id="fm3v0WV2Q2" role="3clFbG">
             <node concept="37vLTw" id="fm3v0WVeSj" role="2Oq$k0">
-              <ref role="3cqZAo" node="fm3v0WVdU5" resolve="buttons" />
+              <ref role="3cqZAo" node="fm3v0WVdU5" resolve="buttonsPanel" />
             </node>
             <node concept="liA8E" id="fm3v0WV3DB" role="2OqNvi">
               <ref role="37wK5l" to="z60i:~Container.add(java.awt.Component)" resolve="add" />
@@ -1021,7 +1021,7 @@
         <node concept="3clFbF" id="fm3v0WQlWK" role="3cqZAp">
           <node concept="2OqwBi" id="fm3v0WQmIn" role="3clFbG">
             <node concept="37vLTw" id="fm3v0WVeYB" role="2Oq$k0">
-              <ref role="3cqZAo" node="fm3v0WVdU5" resolve="buttons" />
+              <ref role="3cqZAo" node="fm3v0WVdU5" resolve="buttonsPanel" />
             </node>
             <node concept="liA8E" id="fm3v0WQnuS" role="2OqNvi">
               <ref role="37wK5l" to="z60i:~Container.add(java.awt.Component)" resolve="add" />
@@ -1061,7 +1061,7 @@
                     <property role="2bfB8j" value="true" />
                     <property role="373rjd" value="true" />
                     <ref role="1Y3XeK" to="hyam:~ActionListener" resolve="ActionListener" />
-                    <ref role="37wK5l" to="wyt6:~Object.&lt;init&gt;()" />
+                    <ref role="37wK5l" to="wyt6:~Object.&lt;init&gt;()" resolve="Object" />
                     <node concept="3Tm1VV" id="sRpFtPpZ71" role="1B3o_S" />
                     <node concept="3clFb_" id="sRpFtPpZ7f" role="jymVt">
                       <property role="TrG5h" value="actionPerformed" />
@@ -1086,7 +1086,7 @@
                         </node>
                       </node>
                       <node concept="2AHcQZ" id="sRpFtPpZ7n" role="2AJF6D">
-                        <ref role="2AI5Lk" to="wyt6:~Override" />
+                        <ref role="2AI5Lk" to="wyt6:~Override" resolve="Override" />
                       </node>
                     </node>
                   </node>
@@ -1120,7 +1120,7 @@
             <node concept="liA8E" id="fm3v0WVhQq" role="2OqNvi">
               <ref role="37wK5l" to="z60i:~Container.add(java.awt.Component,java.lang.Object)" resolve="add" />
               <node concept="37vLTw" id="fm3v0WViRb" role="37wK5m">
-                <ref role="3cqZAo" node="fm3v0WVdU5" resolve="buttons" />
+                <ref role="3cqZAo" node="fm3v0WVdU5" resolve="buttonsPanel" />
               </node>
               <node concept="10M0yZ" id="sRpFtPpFx1" role="37wK5m">
                 <ref role="3cqZAo" to="z60i:~BorderLayout.NORTH" resolve="NORTH" />
@@ -3289,7 +3289,7 @@
                   </node>
                 </node>
                 <node concept="2r$n1x" id="sRpFtPqCAi" role="2r_Bvh">
-                  <ref role="2r$qp6" node="sRpFtPqpZu" resolve="showModules" />
+                  <ref role="2r$qp6" node="sRpFtPqpZu" resolve="displayModules" />
                   <node concept="37vLTw" id="sRpFtPqDha" role="2r_lH1">
                     <ref role="3cqZAo" node="1Nl9e7DyQiR" resolve="displayModules" />
                   </node>
@@ -3569,7 +3569,7 @@
           <node concept="3clFbC" id="sRpFtPpqFc" role="3clFbw">
             <node concept="10Nm6u" id="sRpFtPpqXW" role="3uHU7w" />
             <node concept="37vLTw" id="sRpFtPpqg7" role="3uHU7B">
-              <ref role="3cqZAo" node="1Nl9e7Dz$jD" resolve="depthAndShowModules" />
+              <ref role="3cqZAo" node="1Nl9e7Dz$jD" resolve="configuration" />
             </node>
           </node>
         </node>
diff --git a/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps b/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps
index 7a7515b5..f9b0529f 100644
--- a/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps
+++ b/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps
@@ -272,6 +272,11 @@
     <node concept="1qefOq" id="1KHvhQesd2E" role="1SKRRt">
       <node concept="mXAGR" id="1KHvhQesd2F" role="1qenE9">
         <property role="TrG5h" value="_050_imbricated_two_levels" />
+        <node concept="7CXmI" id="1KHvhQesd2R" role="lGtFl">
+          <node concept="7OXhh" id="1KHvhQesd2S" role="7EUXB">
+            <property role="GvXf4" value="true" />
+          </node>
+        </node>
         <node concept="mXAGQ" id="1KHvhQesd2G" role="mXAGU">
           <property role="TrG5h" value="first" />
           <node concept="mXA1B" id="1KHvhQesd2H" role="mXAiC">
@@ -318,11 +323,6 @@
             </node>
           </node>
         </node>
-        <node concept="7CXmI" id="1KHvhQesd2R" role="lGtFl">
-          <node concept="7OXhh" id="1KHvhQesd2S" role="7EUXB">
-            <property role="GvXf4" value="true" />
-          </node>
-        </node>
       </node>
     </node>
   </node>

From 7afb129630d7651303359783d21f17c8775a7f72 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Thu, 10 Oct 2024 09:04:14 +0200
Subject: [PATCH 29/42] linters: fix a sandbox linter message

---
 ...t.generic.sandbox._010_smoke_user_defined_linters.mps | 9 ++-------
 1 file changed, 2 insertions(+), 7 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.generic.sandbox._010_smoke_user_defined_linters.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.generic.sandbox._010_smoke_user_defined_linters.mps
index e2dda947..72ad90da 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.generic.sandbox._010_smoke_user_defined_linters.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.generic.sandbox._010_smoke_user_defined_linters.mps
@@ -743,13 +743,8 @@
                                   <property role="Xl_RC" value="KB" />
                                 </node>
                                 <node concept="3cpWs3" id="6HKgezSw9sy" role="3uHU7B">
-                                  <node concept="3cpWs3" id="6HKgezSw6F9" role="3uHU7B">
-                                    <node concept="Xl_RD" id="6HKgezSw7hB" role="3uHU7w">
-                                      <property role="Xl_RC" value="' is bigger than " />
-                                    </node>
-                                    <node concept="Xl_RD" id="4XPt_HaR8xv" role="3uHU7B">
-                                      <property role="Xl_RC" value="The file " />
-                                    </node>
+                                  <node concept="Xl_RD" id="PQOvWtfkbP" role="3uHU7B">
+                                    <property role="Xl_RC" value="The file is bigger than " />
                                   </node>
                                   <node concept="2j1LYi" id="7AhcwybAGdN" role="3uHU7w">
                                     <ref role="2j1LYj" node="pFzydTBLXy" resolve="sizeInKb" />

From 23a3fb2f45520135d67b2c1dc20cefa409879c17 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Thu, 10 Oct 2024 09:04:58 +0200
Subject: [PATCH 30/42] linters: correctly report the location and also the
 checker name and node in the error message

---
 .../org.mpsqa.lint.generic.structure.mps      |   9 +-
 .../org.mpsqa.lint.generic.typesystem.mps     | 145 ++++++++++++++++++
 2 files changed, 148 insertions(+), 6 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.structure.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.structure.mps
index 6ab46108..b4e9141c 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.structure.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.structure.mps
@@ -125,9 +125,6 @@
       <property role="20lbJX" value="fLJekj5/_0__n" />
       <ref role="20lvS9" node="6HKgezStO7d" resolve="CheckableScriptParameter" />
     </node>
-    <node concept="PrWs8" id="2dSiT1hKHk1" role="PzmwI">
-      <ref role="PrY4T" to="tpck:h0TrEE$" resolve="INamedConcept" />
-    </node>
     <node concept="PrWs8" id="6gY6GEDxQkP" role="PzmwI">
       <ref role="PrY4T" node="6gY6GEDvQYV" resolve="ILinterResultsContainer" />
     </node>
@@ -175,9 +172,6 @@
       <property role="20kJfa" value="script" />
       <ref role="20lvS9" node="2dSiT1hKD8P" resolve="CheckableScript" />
     </node>
-    <node concept="PrWs8" id="3ibIDIklSMO" role="PzmwI">
-      <ref role="PrY4T" to="tpck:h0TrEE$" resolve="INamedConcept" />
-    </node>
     <node concept="PrWs8" id="6gY6GEDxQl8" role="PzmwI">
       <ref role="PrY4T" node="6gY6GEDvQYV" resolve="ILinterResultsContainer" />
     </node>
@@ -271,6 +265,9 @@
       <property role="TrG5h" value="reportLevel" />
       <ref role="AX2Wp" node="1c_Dn$lNzd5" resolve="EReportSeverityLevel" />
     </node>
+    <node concept="PrWs8" id="PQOvWteYHl" role="PrDN$">
+      <ref role="PrY4T" to="tpck:h0TrEE$" resolve="INamedConcept" />
+    </node>
   </node>
   <node concept="1TIwiD" id="6HKgezStO7d">
     <property role="EcuMT" value="7741759128795038157" />
diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
index 185b2953..6481e4ba 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
@@ -398,6 +398,7 @@
       <concept id="1145383075378" name="jetbrains.mps.lang.smodel.structure.SNodeListType" flags="in" index="2I9FWS">
         <reference id="1145383142433" name="elementConcept" index="2I9WkF" />
       </concept>
+      <concept id="8329979535468945057" name="jetbrains.mps.lang.smodel.structure.Node_PresentationOperation" flags="ng" index="2Iv5rx" />
       <concept id="1145404486709" name="jetbrains.mps.lang.smodel.structure.SemanticDowncastExpression" flags="nn" index="2JrnkZ">
         <child id="1145404616321" name="leftExpression" index="2JrQYb" />
       </concept>
@@ -406,6 +407,7 @@
       <concept id="1139621453865" name="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" flags="nn" index="1mIQ4w">
         <child id="1177027386292" name="conceptArgument" index="cj9EA" />
       </concept>
+      <concept id="1172008320231" name="jetbrains.mps.lang.smodel.structure.Node_IsNotNullOperation" flags="nn" index="3x8VRR" />
       <concept id="1144146199828" name="jetbrains.mps.lang.smodel.structure.Node_CopyOperation" flags="nn" index="1$rogu" />
       <concept id="1140137987495" name="jetbrains.mps.lang.smodel.structure.SNodeTypeCastExpression" flags="nn" index="1PxgMI">
         <property id="1238684351431" name="asCast" index="1BlNFB" />
@@ -1434,6 +1436,28 @@
                   </node>
                 </node>
               </node>
+              <node concept="9aQIb" id="PQOvWtfTCd" role="9aQIa">
+                <node concept="3clFbS" id="PQOvWtfTCe" role="9aQI4">
+                  <node concept="3clFbF" id="PQOvWtfTTQ" role="3cqZAp">
+                    <node concept="2OqwBi" id="PQOvWtfV92" role="3clFbG">
+                      <node concept="37vLTw" id="PQOvWtfTTP" role="2Oq$k0">
+                        <ref role="3cqZAo" node="3hskWvhsmDv" resolve="messageBuilder" />
+                      </node>
+                      <node concept="liA8E" id="PQOvWtfVTB" role="2OqNvi">
+                        <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
+                        <node concept="2OqwBi" id="PQOvWtfWPj" role="37wK5m">
+                          <node concept="37vLTw" id="PQOvWtfWoI" role="2Oq$k0">
+                            <ref role="3cqZAo" node="106MO2l7QHb" resolve="location" />
+                          </node>
+                          <node concept="liA8E" id="PQOvWtfX89" role="2OqNvi">
+                            <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
             </node>
             <node concept="3clFbF" id="3hskWvhsGlT" role="3cqZAp">
               <node concept="2OqwBi" id="3hskWvhsGoB" role="3clFbG">
@@ -1474,6 +1498,127 @@
             </node>
           </node>
         </node>
+        <node concept="3clFbH" id="PQOvWtg9n$" role="3cqZAp" />
+        <node concept="3clFbF" id="PQOvWtgbdD" role="3cqZAp">
+          <node concept="2OqwBi" id="PQOvWtgc0D" role="3clFbG">
+            <node concept="37vLTw" id="PQOvWtgbdB" role="2Oq$k0">
+              <ref role="3cqZAo" node="3hskWvhsmDv" resolve="messageBuilder" />
+            </node>
+            <node concept="liA8E" id="PQOvWtgcM$" role="2OqNvi">
+              <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
+              <node concept="Xl_RD" id="PQOvWtgd3p" role="37wK5m">
+                <property role="Xl_RC" value=" [" />
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbJ" id="PQOvWthchi" role="3cqZAp">
+          <node concept="3clFbS" id="PQOvWthchk" role="3clFbx">
+            <node concept="3clFbF" id="PQOvWtitPy" role="3cqZAp">
+              <node concept="2OqwBi" id="PQOvWtiv9u" role="3clFbG">
+                <node concept="37vLTw" id="PQOvWtitPw" role="2Oq$k0">
+                  <ref role="3cqZAo" node="3hskWvhsmDv" resolve="messageBuilder" />
+                </node>
+                <node concept="liA8E" id="PQOvWtivSp" role="2OqNvi">
+                  <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
+                  <node concept="Xl_RD" id="PQOvWtivUo" role="37wK5m">
+                    <property role="Xl_RC" value="Node: " />
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbF" id="PQOvWthh_9" role="3cqZAp">
+              <node concept="2OqwBi" id="PQOvWthijK" role="3clFbG">
+                <node concept="37vLTw" id="PQOvWthh_7" role="2Oq$k0">
+                  <ref role="3cqZAo" node="3hskWvhsmDv" resolve="messageBuilder" />
+                </node>
+                <node concept="liA8E" id="PQOvWthj0K" role="2OqNvi">
+                  <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
+                  <node concept="2OqwBi" id="PQOvWthmG4" role="37wK5m">
+                    <node concept="2OqwBi" id="PQOvWthkGQ" role="2Oq$k0">
+                      <node concept="37vLTw" id="PQOvWthjmr" role="2Oq$k0">
+                        <ref role="3cqZAo" node="ST9rMmWlmc" resolve="res" />
+                      </node>
+                      <node concept="2sxana" id="PQOvWthm6k" role="2OqNvi">
+                        <ref role="2sxfKC" to="qqy:3ghOW5HS78o" resolve="node" />
+                      </node>
+                    </node>
+                    <node concept="2Iv5rx" id="PQOvWthn4H" role="2OqNvi" />
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbF" id="PQOvWthBEd" role="3cqZAp">
+              <node concept="2OqwBi" id="PQOvWthCqd" role="3clFbG">
+                <node concept="37vLTw" id="PQOvWthBEb" role="2Oq$k0">
+                  <ref role="3cqZAo" node="3hskWvhsmDv" resolve="messageBuilder" />
+                </node>
+                <node concept="liA8E" id="PQOvWthDGK" role="2OqNvi">
+                  <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
+                  <node concept="Xl_RD" id="PQOvWthDZw" role="37wK5m">
+                    <property role="Xl_RC" value=", " />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+          <node concept="2OqwBi" id="PQOvWthgTk" role="3clFbw">
+            <node concept="2OqwBi" id="PQOvWthf3a" role="2Oq$k0">
+              <node concept="37vLTw" id="PQOvWthdVS" role="2Oq$k0">
+                <ref role="3cqZAo" node="ST9rMmWlmc" resolve="res" />
+              </node>
+              <node concept="2sxana" id="PQOvWthgwM" role="2OqNvi">
+                <ref role="2sxfKC" to="qqy:3ghOW5HS78o" resolve="node" />
+              </node>
+            </node>
+            <node concept="3x8VRR" id="PQOvWthhg9" role="2OqNvi" />
+          </node>
+        </node>
+        <node concept="3clFbF" id="PQOvWtiLiV" role="3cqZAp">
+          <node concept="2OqwBi" id="PQOvWtiMHB" role="3clFbG">
+            <node concept="37vLTw" id="PQOvWtiLiT" role="2Oq$k0">
+              <ref role="3cqZAo" node="3hskWvhsmDv" resolve="messageBuilder" />
+            </node>
+            <node concept="liA8E" id="PQOvWtiNtu" role="2OqNvi">
+              <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
+              <node concept="Xl_RD" id="PQOvWtiNM6" role="37wK5m">
+                <property role="Xl_RC" value="Checker: " />
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbF" id="PQOvWteSaM" role="3cqZAp">
+          <node concept="2OqwBi" id="PQOvWteSPX" role="3clFbG">
+            <node concept="37vLTw" id="PQOvWteSaK" role="2Oq$k0">
+              <ref role="3cqZAo" node="3hskWvhsmDv" resolve="messageBuilder" />
+            </node>
+            <node concept="liA8E" id="PQOvWteTz7" role="2OqNvi">
+              <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
+              <node concept="2OqwBi" id="PQOvWteUt0" role="37wK5m">
+                <node concept="37vLTw" id="PQOvWteTWo" role="2Oq$k0">
+                  <ref role="3cqZAo" node="ST9rMmWjAl" resolve="checker" />
+                </node>
+                <node concept="3TrcHB" id="PQOvWteZBT" role="2OqNvi">
+                  <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbF" id="PQOvWtf0k5" role="3cqZAp">
+          <node concept="2OqwBi" id="PQOvWtf0ZC" role="3clFbG">
+            <node concept="37vLTw" id="PQOvWtf0k3" role="2Oq$k0">
+              <ref role="3cqZAo" node="3hskWvhsmDv" resolve="messageBuilder" />
+            </node>
+            <node concept="liA8E" id="PQOvWtf1I3" role="2OqNvi">
+              <ref role="37wK5l" to="wyt6:~StringBuilder.append(java.lang.String)" resolve="append" />
+              <node concept="Xl_RD" id="PQOvWtf1WC" role="37wK5m">
+                <property role="Xl_RC" value="]" />
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="PQOvWtg9n_" role="3cqZAp" />
         <node concept="3cpWs8" id="3hskWvhsJQ2" role="3cqZAp">
           <node concept="3cpWsn" id="3hskWvhsJQ5" role="3cpWs9">
             <property role="TrG5h" value="message" />

From 76219bbffd5ce6ab1911f44e2550cae5762e87f5 Mon Sep 17 00:00:00 2001
From: Vit Losenicky <vit.losenicky@porsche-engineering.cz>
Date: Mon, 4 Nov 2024 15:17:42 +0100
Subject: [PATCH 31/42] adds linter that enforces that virtual method is
 overriden

(cherry picked from commit 3805c11e1f732d72a059610f2ef9d223170b1a91)
---
 ...s_lang.linters_library.behavior_aspect.mps | 735 ++++++++++++++++++
 1 file changed, 735 insertions(+)

diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
index 824df005..62bf15dd 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
@@ -13,13 +13,19 @@
     <import index="zn9m" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.util(MPS.IDEA/)" />
     <import index="csvn" ref="r:a91e42c5-728b-4866-86c4-d97454f4aee4(jetbrains.mps.lang.behavior.behavior)" implicit="true" />
     <import index="tpee" ref="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" implicit="true" />
+    <import index="tpce" ref="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" implicit="true" />
+    <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
+    <import index="tpcn" ref="r:00000000-0000-4000-0000-011c8959028b(jetbrains.mps.lang.structure.behavior)" implicit="true" />
   </imports>
   <registry>
     <language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
+      <concept id="1080223426719" name="jetbrains.mps.baseLanguage.structure.OrExpression" flags="nn" index="22lmx$" />
       <concept id="1215693861676" name="jetbrains.mps.baseLanguage.structure.BaseAssignmentExpression" flags="nn" index="d038R">
         <child id="1068498886297" name="rValue" index="37vLTx" />
         <child id="1068498886295" name="lValue" index="37vLTJ" />
       </concept>
+      <concept id="4836112446988635817" name="jetbrains.mps.baseLanguage.structure.UndefinedType" flags="in" index="2jxLKc" />
+      <concept id="1202948039474" name="jetbrains.mps.baseLanguage.structure.InstanceMethodCallOperation" flags="nn" index="liA8E" />
       <concept id="1154032098014" name="jetbrains.mps.baseLanguage.structure.AbstractLoopStatement" flags="nn" index="2LF5Ji">
         <child id="1154032183016" name="body" index="2LFqv$" />
       </concept>
@@ -37,6 +43,7 @@
         <property id="1070475926801" name="value" index="Xl_RC" />
       </concept>
       <concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
+      <concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
@@ -59,6 +66,7 @@
       <concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
         <child id="1068581517665" name="statement" index="3cqZAp" />
       </concept>
+      <concept id="1068580123137" name="jetbrains.mps.baseLanguage.structure.BooleanConstant" flags="nn" index="3clFbT" />
       <concept id="1068581242875" name="jetbrains.mps.baseLanguage.structure.PlusExpression" flags="nn" index="3cpWs3" />
       <concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
         <child id="1068581517676" name="expression" index="3cqZAk" />
@@ -67,6 +75,9 @@
         <child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
       </concept>
       <concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
+      <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
+        <child id="1081516765348" name="expression" index="3fr31v" />
+      </concept>
       <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
@@ -86,9 +97,28 @@
         <child id="1163668922816" name="ifTrue" index="3K4E3e" />
         <child id="1163668934364" name="ifFalse" index="3K4GZi" />
       </concept>
+      <concept id="6329021646629104954" name="jetbrains.mps.baseLanguage.structure.SingleLineComment" flags="nn" index="3SKdUt">
+        <child id="8356039341262087992" name="line" index="1aUNEU" />
+      </concept>
       <concept id="1080120340718" name="jetbrains.mps.baseLanguage.structure.AndExpression" flags="nn" index="1Wc70l" />
     </language>
     <language id="40ab19e9-751a-4433-b645-0e65160e58a0" name="org.mpsqa.lint.generic">
+      <concept id="7741759128795038157" name="org.mpsqa.lint.generic.structure.CheckableScriptParameter" flags="ng" index="2j1K4_">
+        <child id="7741759128795045740" name="type" index="2j1LY4" />
+      </concept>
+      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ngI" index="2j1LY6">
+        <child id="7741759128795065655" name="parValues" index="2j1YRv" />
+      </concept>
+      <concept id="7741759128795045754" name="org.mpsqa.lint.generic.structure.CheckableScriptParameterRef" flags="ng" index="2j1LYi">
+        <reference id="7741759128795045755" name="par" index="2j1LYj" />
+      </concept>
+      <concept id="7741759128795045751" name="org.mpsqa.lint.generic.structure.ParamValue" flags="ng" index="2j1LYv">
+        <child id="7741759128795045752" name="exp" index="2j1LYg" />
+        <child id="7741759128795065723" name="paramRef" index="2j1YQj" />
+      </concept>
+      <concept id="7223240310078271419" name="org.mpsqa.lint.generic.structure.ILinterResultsContainer" flags="ngI" index="3dgnlL">
+        <property id="7223240310078527797" name="failOnlyOnNewResults" index="3dJkfZ" />
+      </concept>
       <concept id="3423774024185833116" name="org.mpsqa.lint.generic.structure.NodeReferenceWord" flags="ng" index="3Djtr9">
         <child id="3423774024185984305" name="fullyQualifiedReference" index="3DkKl$" />
       </concept>
@@ -101,10 +131,18 @@
       <concept id="2940128608222714821" name="org.mpsqa.lint.generic.structure.NodeCheckingFunction" flags="ig" index="1JQnix" />
       <concept id="2940128608222714486" name="org.mpsqa.lint.generic.structure.ConceptFunctionParameter_Node" flags="nn" index="1JQnki" />
       <concept id="2555875871751836213" name="org.mpsqa.lint.generic.structure.CheckableScript" flags="ng" index="1MIHA_">
+        <child id="7741759128795038158" name="additionalParameters" index="2j1K4A" />
         <child id="1716492013482699988" name="check" index="14J5yK" />
         <child id="2555875871751847640" name="documentation" index="1MIJl8" />
       </concept>
     </language>
+    <language id="fd392034-7849-419d-9071-12563d152375" name="jetbrains.mps.baseLanguage.closures">
+      <concept id="2524418899405758586" name="jetbrains.mps.baseLanguage.closures.structure.InferredClosureParameterDeclaration" flags="ig" index="gl6BB" />
+      <concept id="1199569711397" name="jetbrains.mps.baseLanguage.closures.structure.ClosureLiteral" flags="nn" index="1bVj0M">
+        <child id="1199569906740" name="parameter" index="1bW2Oz" />
+        <child id="1199569916463" name="body" index="1bW5cS" />
+      </concept>
+    </language>
     <language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
       <concept id="1177026924588" name="jetbrains.mps.lang.smodel.structure.RefConcept_Reference" flags="nn" index="chp4Y">
         <reference id="1177026940964" name="conceptDeclaration" index="cht4Q" />
@@ -123,6 +161,10 @@
         <child id="1145567471833" name="createdType" index="2T96Bj" />
       </concept>
       <concept id="1171407110247" name="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" flags="nn" index="2Xjw5R" />
+      <concept id="1139621453865" name="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" flags="nn" index="1mIQ4w">
+        <child id="1177027386292" name="conceptArgument" index="cj9EA" />
+      </concept>
+      <concept id="1172008320231" name="jetbrains.mps.lang.smodel.structure.Node_IsNotNullOperation" flags="nn" index="3x8VRR" />
       <concept id="1144101972840" name="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" flags="ng" index="1xMEDy">
         <child id="1207343664468" name="conceptArgument" index="ri$Ld" />
       </concept>
@@ -158,12 +200,18 @@
       </concept>
     </language>
     <language id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections">
+      <concept id="1204796164442" name="jetbrains.mps.baseLanguage.collections.structure.InternalSequenceOperation" flags="nn" index="23sCx2">
+        <child id="1204796294226" name="closure" index="23t8la" />
+      </concept>
       <concept id="540871147943773365" name="jetbrains.mps.baseLanguage.collections.structure.SingleArgumentSequenceOperation" flags="nn" index="25WWJ4">
         <child id="540871147943773366" name="argument" index="25WWJ7" />
       </concept>
       <concept id="1151688443754" name="jetbrains.mps.baseLanguage.collections.structure.ListType" flags="in" index="_YKpA">
         <child id="1151688676805" name="elementType" index="_ZDj9" />
       </concept>
+      <concept id="1151689724996" name="jetbrains.mps.baseLanguage.collections.structure.SequenceType" flags="in" index="A3Dl8">
+        <child id="1151689745422" name="elementType" index="A3Ik2" />
+      </concept>
       <concept id="1151702311717" name="jetbrains.mps.baseLanguage.collections.structure.ToListOperation" flags="nn" index="ANE8D" />
       <concept id="1153943597977" name="jetbrains.mps.baseLanguage.collections.structure.ForEachStatement" flags="nn" index="2Gpval">
         <child id="1153944400369" name="variable" index="2Gsz3X" />
@@ -173,6 +221,7 @@
       <concept id="1153944233411" name="jetbrains.mps.baseLanguage.collections.structure.ForEachVariableReference" flags="nn" index="2GrUjf">
         <reference id="1153944258490" name="variable" index="2Gs0qQ" />
       </concept>
+      <concept id="1235566554328" name="jetbrains.mps.baseLanguage.collections.structure.AnyOperation" flags="nn" index="2HwmR7" />
       <concept id="1237721394592" name="jetbrains.mps.baseLanguage.collections.structure.AbstractContainerCreator" flags="nn" index="HWqM0">
         <child id="1237721435807" name="elementType" index="HW$YZ" />
       </concept>
@@ -180,6 +229,7 @@
       <concept id="1160600644654" name="jetbrains.mps.baseLanguage.collections.structure.ListCreatorWithInit" flags="nn" index="Tc6Ow" />
       <concept id="1160612413312" name="jetbrains.mps.baseLanguage.collections.structure.AddElementOperation" flags="nn" index="TSZUe" />
       <concept id="1160666733551" name="jetbrains.mps.baseLanguage.collections.structure.AddAllElementsOperation" flags="nn" index="X8dFx" />
+      <concept id="1201792049884" name="jetbrains.mps.baseLanguage.collections.structure.TranslateOperation" flags="nn" index="3goQfb" />
       <concept id="1197683403723" name="jetbrains.mps.baseLanguage.collections.structure.MapType" flags="in" index="3rvAFt">
         <child id="1197683466920" name="keyType" index="3rvQeY" />
         <child id="1197683475734" name="valueType" index="3rvSg0" />
@@ -189,10 +239,12 @@
         <child id="1197687035757" name="valueType" index="3rHtpV" />
       </concept>
       <concept id="1165530316231" name="jetbrains.mps.baseLanguage.collections.structure.IsEmptyOperation" flags="nn" index="1v1jN8" />
+      <concept id="1202120902084" name="jetbrains.mps.baseLanguage.collections.structure.WhereOperation" flags="nn" index="3zZkjj" />
       <concept id="1197932370469" name="jetbrains.mps.baseLanguage.collections.structure.MapElement" flags="nn" index="3EllGN">
         <child id="1197932505799" name="map" index="3ElQJh" />
         <child id="1197932525128" name="key" index="3ElVtu" />
       </concept>
+      <concept id="1176501494711" name="jetbrains.mps.baseLanguage.collections.structure.IsNotEmptyOperation" flags="nn" index="3GX2aA" />
     </language>
   </registry>
   <node concept="1MIHA_" id="3pz5R1DHoLR">
@@ -1060,5 +1112,688 @@
       </node>
     </node>
   </node>
+  <node concept="1MIHA_" id="5FxxG02IpQB">
+    <property role="TrG5h" value="mandatory_virtual_method_override" />
+    <property role="3dJkfZ" value="true" />
+    <node concept="1JQnix" id="5FxxG02IpQE" role="14J5yK">
+      <ref role="1XX52x" to="1i04:hP3h7Gq" resolve="ConceptBehavior" />
+      <node concept="3clFbS" id="5FxxG02IpQF" role="2VODD2">
+        <node concept="3cpWs8" id="5FxxG02Itsb" role="3cqZAp">
+          <node concept="3cpWsn" id="5FxxG02Itse" role="3cpWs9">
+            <property role="TrG5h" value="res" />
+            <node concept="_YKpA" id="5FxxG02Its9" role="1tU5fm">
+              <node concept="3uibUv" id="5FxxG02ItG7" role="_ZDj9">
+                <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                <node concept="17QB3L" id="5FxxG02ItHv" role="11_B2D" />
+                <node concept="3Tqbb2" id="5FxxG02ItIW" role="11_B2D" />
+              </node>
+            </node>
+            <node concept="2ShNRf" id="5FxxG02ItLY" role="33vP2m">
+              <node concept="Tc6Ow" id="5FxxG02ItOH" role="2ShVmc">
+                <node concept="3uibUv" id="5FxxG02ItOJ" role="HW$YZ">
+                  <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                  <node concept="17QB3L" id="5FxxG02ItOK" role="11_B2D" />
+                  <node concept="3Tqbb2" id="5FxxG02ItOL" role="11_B2D" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="5FxxG02ItQZ" role="3cqZAp" />
+        <node concept="3SKdUt" id="5FxxG02ICW6" role="3cqZAp">
+          <node concept="1PaTwC" id="5FxxG02ICW7" role="1aUNEU">
+            <node concept="3oM_SD" id="5FxxG02ID1f" role="1PaTwD">
+              <property role="3oM_SC" value="skip" />
+            </node>
+            <node concept="3oM_SD" id="5FxxG02ID1O" role="1PaTwD">
+              <property role="3oM_SC" value="for" />
+            </node>
+            <node concept="3oM_SD" id="5FxxG02ID2d" role="1PaTwD">
+              <property role="3oM_SC" value="abstract" />
+            </node>
+            <node concept="3oM_SD" id="5FxxG02ID34" role="1PaTwD">
+              <property role="3oM_SC" value="concept" />
+            </node>
+            <node concept="3oM_SD" id="5FxxG02ID4v" role="1PaTwD">
+              <property role="3oM_SC" value="or" />
+            </node>
+            <node concept="3oM_SD" id="5FxxG02ID4M" role="1PaTwD">
+              <property role="3oM_SC" value="interface" />
+            </node>
+            <node concept="3oM_SD" id="5FxxG02ID5J" role="1PaTwD">
+              <property role="3oM_SC" value="concept" />
+            </node>
+            <node concept="3oM_SD" id="5FxxG02ID6M" role="1PaTwD">
+              <property role="3oM_SC" value="declarations" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbJ" id="5FxxG02IuDa" role="3cqZAp">
+          <node concept="3clFbS" id="5FxxG02IuDc" role="3clFbx">
+            <node concept="3cpWs6" id="5FxxG02IBqZ" role="3cqZAp">
+              <node concept="37vLTw" id="5FxxG02IBrY" role="3cqZAk">
+                <ref role="3cqZAo" node="5FxxG02Itse" resolve="res" />
+              </node>
+            </node>
+          </node>
+          <node concept="22lmx$" id="5FxxG02I$Ma" role="3clFbw">
+            <node concept="2OqwBi" id="5FxxG02IAPr" role="3uHU7w">
+              <node concept="2OqwBi" id="5FxxG02I_8B" role="2Oq$k0">
+                <node concept="1JQnki" id="5FxxG02I_5c" role="2Oq$k0" />
+                <node concept="3TrEf2" id="5FxxG02IArH" role="2OqNvi">
+                  <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
+                </node>
+              </node>
+              <node concept="1mIQ4w" id="5FxxG02IAWF" role="2OqNvi">
+                <node concept="chp4Y" id="5FxxG02IB0c" role="cj9EA">
+                  <ref role="cht4Q" to="tpce:h0PlHMJ" resolve="InterfaceConceptDeclaration" />
+                </node>
+              </node>
+            </node>
+            <node concept="2OqwBi" id="5FxxG02Ix_M" role="3uHU7B">
+              <node concept="2OqwBi" id="5FxxG02IvkC" role="2Oq$k0">
+                <node concept="1JQnki" id="5FxxG02IuVk" role="2Oq$k0" />
+                <node concept="3TrEf2" id="5FxxG02I_F3" role="2OqNvi">
+                  <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
+                </node>
+              </node>
+              <node concept="3TrcHB" id="5FxxG02IAbe" role="2OqNvi">
+                <ref role="3TsBF5" to="tpce:40UcGlRb7V2" resolve="abstract" />
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="5FxxG02IuaL" role="3cqZAp" />
+        <node concept="3cpWs8" id="5FxxG02PsS7" role="3cqZAp">
+          <node concept="3cpWsn" id="5FxxG02PsS8" role="3cpWs9">
+            <property role="TrG5h" value="superConceptMethods" />
+            <node concept="A3Dl8" id="5FxxG02PsMz" role="1tU5fm">
+              <node concept="3Tqbb2" id="5FxxG02PsMA" role="A3Ik2">
+                <ref role="ehGHo" to="1i04:hP3i0lY" resolve="ConceptMethodDeclaration" />
+              </node>
+            </node>
+            <node concept="2OqwBi" id="5FxxG02PsS9" role="33vP2m">
+              <node concept="2OqwBi" id="5FxxG02PsSa" role="2Oq$k0">
+                <node concept="2OqwBi" id="5FxxG02PsSb" role="2Oq$k0">
+                  <node concept="1JQnki" id="5FxxG02PsSc" role="2Oq$k0" />
+                  <node concept="2qgKlT" id="5FxxG02PsSd" role="2OqNvi">
+                    <ref role="37wK5l" to="csvn:1$X$vL9L8i8" resolve="getAllSuperBehaviors" />
+                  </node>
+                </node>
+                <node concept="3zZkjj" id="5FxxG02PsSe" role="2OqNvi">
+                  <node concept="1bVj0M" id="5FxxG02PsSf" role="23t8la">
+                    <node concept="3clFbS" id="5FxxG02PsSg" role="1bW5cS">
+                      <node concept="3clFbF" id="5FxxG02PsSh" role="3cqZAp">
+                        <node concept="2OqwBi" id="5FxxG02PsSi" role="3clFbG">
+                          <node concept="2OqwBi" id="5FxxG02PsSj" role="2Oq$k0">
+                            <node concept="2OqwBi" id="5FxxG02PsSk" role="2Oq$k0">
+                              <node concept="37vLTw" id="5FxxG02PsSl" role="2Oq$k0">
+                                <ref role="3cqZAo" node="5FxxG02PsSq" resolve="it" />
+                              </node>
+                              <node concept="3TrEf2" id="5FxxG02PsSm" role="2OqNvi">
+                                <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
+                              </node>
+                            </node>
+                            <node concept="3TrcHB" id="5FxxG02PsSn" role="2OqNvi">
+                              <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
+                            </node>
+                          </node>
+                          <node concept="liA8E" id="5FxxG02PsSo" role="2OqNvi">
+                            <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
+                            <node concept="2j1LYi" id="5FxxG02PsSp" role="37wK5m">
+                              <ref role="2j1LYj" node="5FxxG02Iq75" resolve="parentConceptName" />
+                            </node>
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                    <node concept="gl6BB" id="5FxxG02PsSq" role="1bW2Oz">
+                      <property role="TrG5h" value="it" />
+                      <node concept="2jxLKc" id="5FxxG02PsSr" role="1tU5fm" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3goQfb" id="5FxxG02PsSs" role="2OqNvi">
+                <node concept="1bVj0M" id="5FxxG02PsSt" role="23t8la">
+                  <node concept="3clFbS" id="5FxxG02PsSu" role="1bW5cS">
+                    <node concept="3clFbF" id="5FxxG02PsSv" role="3cqZAp">
+                      <node concept="2OqwBi" id="5FxxG02PsSw" role="3clFbG">
+                        <node concept="2OqwBi" id="5FxxG02PsSx" role="2Oq$k0">
+                          <node concept="37vLTw" id="5FxxG02PsSy" role="2Oq$k0">
+                            <ref role="3cqZAo" node="5FxxG02PsSA" resolve="it" />
+                          </node>
+                          <node concept="2qgKlT" id="5FxxG02PsSz" role="2OqNvi">
+                            <ref role="37wK5l" to="tpek:hEwJjl2" resolve="getMembers" />
+                          </node>
+                        </node>
+                        <node concept="v3k3i" id="5FxxG02PsS$" role="2OqNvi">
+                          <node concept="chp4Y" id="5FxxG02PsS_" role="v3oSu">
+                            <ref role="cht4Q" to="1i04:hP3i0lY" resolve="ConceptMethodDeclaration" />
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                  <node concept="gl6BB" id="5FxxG02PsSA" role="1bW2Oz">
+                    <property role="TrG5h" value="it" />
+                    <node concept="2jxLKc" id="5FxxG02PsSB" role="1tU5fm" />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="5FxxG02S1qF" role="3cqZAp" />
+        <node concept="3cpWs8" id="5FxxG02OHO9" role="3cqZAp">
+          <node concept="3cpWsn" id="5FxxG02OHOc" role="3cpWs9">
+            <property role="TrG5h" value="superConceptHasMethod" />
+            <node concept="10P_77" id="5FxxG02OHO7" role="1tU5fm" />
+            <node concept="2OqwBi" id="5FxxG02Px$_" role="33vP2m">
+              <node concept="37vLTw" id="5FxxG02PcNq" role="2Oq$k0">
+                <ref role="3cqZAo" node="5FxxG02PsS8" resolve="superConceptMethods" />
+              </node>
+              <node concept="2HwmR7" id="5FxxG02PyyZ" role="2OqNvi">
+                <node concept="1bVj0M" id="5FxxG02Pyz1" role="23t8la">
+                  <node concept="3clFbS" id="5FxxG02Pyz2" role="1bW5cS">
+                    <node concept="3clFbF" id="5FxxG02PyVR" role="3cqZAp">
+                      <node concept="1Wc70l" id="5FxxG02PDmm" role="3clFbG">
+                        <node concept="2OqwBi" id="5FxxG02PKYX" role="3uHU7w">
+                          <node concept="2OqwBi" id="5FxxG02PId0" role="2Oq$k0">
+                            <node concept="37vLTw" id="5FxxG02PG1Y" role="2Oq$k0">
+                              <ref role="3cqZAo" node="5FxxG02Pyz3" resolve="it" />
+                            </node>
+                            <node concept="3TrcHB" id="5FxxG02PJiL" role="2OqNvi">
+                              <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
+                            </node>
+                          </node>
+                          <node concept="liA8E" id="5FxxG02PM83" role="2OqNvi">
+                            <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
+                            <node concept="2j1LYi" id="5FxxG02PMxZ" role="37wK5m">
+                              <ref role="2j1LYj" node="5FxxG02Iq6u" resolve="methodName" />
+                            </node>
+                          </node>
+                        </node>
+                        <node concept="2OqwBi" id="5FxxG02P$kO" role="3uHU7B">
+                          <node concept="37vLTw" id="5FxxG02PyVQ" role="2Oq$k0">
+                            <ref role="3cqZAo" node="5FxxG02Pyz3" resolve="it" />
+                          </node>
+                          <node concept="3TrcHB" id="5FxxG02PApT" role="2OqNvi">
+                            <ref role="3TsBF5" to="1i04:hP3i0m0" resolve="isVirtual" />
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                  <node concept="gl6BB" id="5FxxG02Pyz3" role="1bW2Oz">
+                    <property role="TrG5h" value="it" />
+                    <node concept="2jxLKc" id="5FxxG02Pyz4" role="1tU5fm" />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3cpWs8" id="5FxxG02JVY2" role="3cqZAp">
+          <node concept="3cpWsn" id="5FxxG02JVY3" role="3cpWs9">
+            <property role="TrG5h" value="isSubConcept" />
+            <node concept="10P_77" id="5FxxG02JVVx" role="1tU5fm" />
+            <node concept="2OqwBi" id="5FxxG02JVY4" role="33vP2m">
+              <node concept="2OqwBi" id="5FxxG02JVY5" role="2Oq$k0">
+                <node concept="2OqwBi" id="5FxxG02JVY6" role="2Oq$k0">
+                  <node concept="1JQnki" id="5FxxG02JVY7" role="2Oq$k0" />
+                  <node concept="3TrEf2" id="5FxxG02JVY8" role="2OqNvi">
+                    <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
+                  </node>
+                </node>
+                <node concept="2qgKlT" id="5FxxG02JVY9" role="2OqNvi">
+                  <ref role="37wK5l" to="tpcn:2A8AB0rAWpG" resolve="getAllSuperConcepts" />
+                  <node concept="3clFbT" id="5FxxG02JVYa" role="37wK5m" />
+                </node>
+              </node>
+              <node concept="2HwmR7" id="5FxxG02JVYb" role="2OqNvi">
+                <node concept="1bVj0M" id="5FxxG02JVYc" role="23t8la">
+                  <node concept="3clFbS" id="5FxxG02JVYd" role="1bW5cS">
+                    <node concept="3clFbF" id="5FxxG02JVYe" role="3cqZAp">
+                      <node concept="2OqwBi" id="5FxxG02JVYf" role="3clFbG">
+                        <node concept="2OqwBi" id="5FxxG02JVYg" role="2Oq$k0">
+                          <node concept="37vLTw" id="5FxxG02JVYh" role="2Oq$k0">
+                            <ref role="3cqZAo" node="5FxxG02JVYl" resolve="it" />
+                          </node>
+                          <node concept="3TrcHB" id="5FxxG02JVYi" role="2OqNvi">
+                            <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
+                          </node>
+                        </node>
+                        <node concept="liA8E" id="5FxxG02JVYj" role="2OqNvi">
+                          <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
+                          <node concept="2j1LYi" id="5FxxG02JVYk" role="37wK5m">
+                            <ref role="2j1LYj" node="5FxxG02Iq75" resolve="parentConceptName" />
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                  <node concept="gl6BB" id="5FxxG02JVYl" role="1bW2Oz">
+                    <property role="TrG5h" value="it" />
+                    <node concept="2jxLKc" id="5FxxG02JVYm" role="1tU5fm" />
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3cpWs8" id="5FxxG02Kht5" role="3cqZAp">
+          <node concept="3cpWsn" id="5FxxG02Kht6" role="3cpWs9">
+            <property role="TrG5h" value="hasImplementedMethod" />
+            <node concept="10P_77" id="5FxxG02Khqo" role="1tU5fm" />
+            <node concept="2OqwBi" id="5FxxG02Kq8v" role="33vP2m">
+              <node concept="2OqwBi" id="5FxxG02Kht8" role="2Oq$k0">
+                <node concept="2OqwBi" id="5FxxG02Kht9" role="2Oq$k0">
+                  <node concept="2OqwBi" id="5FxxG02Khta" role="2Oq$k0">
+                    <node concept="1JQnki" id="5FxxG02Khtb" role="2Oq$k0" />
+                    <node concept="2qgKlT" id="5FxxG02Khtc" role="2OqNvi">
+                      <ref role="37wK5l" to="tpek:hEwJjl2" resolve="getMembers" />
+                    </node>
+                  </node>
+                  <node concept="v3k3i" id="5FxxG02Khtd" role="2OqNvi">
+                    <node concept="chp4Y" id="5FxxG02Khte" role="v3oSu">
+                      <ref role="cht4Q" to="1i04:hP3i0lY" resolve="ConceptMethodDeclaration" />
+                    </node>
+                  </node>
+                </node>
+                <node concept="3zZkjj" id="5FxxG02Khtf" role="2OqNvi">
+                  <node concept="1bVj0M" id="5FxxG02Khtg" role="23t8la">
+                    <node concept="3clFbS" id="5FxxG02Khth" role="1bW5cS">
+                      <node concept="3clFbF" id="5FxxG02Khti" role="3cqZAp">
+                        <node concept="1Wc70l" id="5FxxG02KoMF" role="3clFbG">
+                          <node concept="2OqwBi" id="5FxxG02Ku7W" role="3uHU7w">
+                            <node concept="2OqwBi" id="5FxxG02KsFg" role="2Oq$k0">
+                              <node concept="37vLTw" id="5FxxG02KrI6" role="2Oq$k0">
+                                <ref role="3cqZAo" node="5FxxG02Khtp" resolve="it" />
+                              </node>
+                              <node concept="3TrEf2" id="5FxxG02KtJK" role="2OqNvi">
+                                <ref role="3Tt5mk" to="1i04:hP3i0lZ" resolve="overriddenMethod" />
+                              </node>
+                            </node>
+                            <node concept="3x8VRR" id="5FxxG02Kv7h" role="2OqNvi" />
+                          </node>
+                          <node concept="2OqwBi" id="5FxxG02Khtj" role="3uHU7B">
+                            <node concept="2OqwBi" id="5FxxG02Khtk" role="2Oq$k0">
+                              <node concept="37vLTw" id="5FxxG02Khtl" role="2Oq$k0">
+                                <ref role="3cqZAo" node="5FxxG02Khtp" resolve="it" />
+                              </node>
+                              <node concept="3TrcHB" id="5FxxG02Khtm" role="2OqNvi">
+                                <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
+                              </node>
+                            </node>
+                            <node concept="liA8E" id="5FxxG02Khtn" role="2OqNvi">
+                              <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
+                              <node concept="2j1LYi" id="5FxxG02Khto" role="37wK5m">
+                                <ref role="2j1LYj" node="5FxxG02Iq6u" resolve="methodName" />
+                              </node>
+                            </node>
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                    <node concept="gl6BB" id="5FxxG02Khtp" role="1bW2Oz">
+                      <property role="TrG5h" value="it" />
+                      <node concept="2jxLKc" id="5FxxG02Khtq" role="1tU5fm" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="3GX2aA" id="5FxxG02OH2y" role="2OqNvi" />
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="5FxxG02OHzh" role="3cqZAp" />
+        <node concept="3clFbJ" id="5FxxG02IDdf" role="3cqZAp">
+          <node concept="3clFbS" id="5FxxG02IDdh" role="3clFbx">
+            <node concept="3cpWs8" id="5FxxG02Kvzq" role="3cqZAp">
+              <node concept="3cpWsn" id="5FxxG02Kvzt" role="3cpWs9">
+                <property role="TrG5h" value="msg" />
+                <node concept="17QB3L" id="5FxxG02Kvzo" role="1tU5fm" />
+                <node concept="3cpWs3" id="5FxxG02KFip" role="33vP2m">
+                  <node concept="Xl_RD" id="5FxxG02KFvn" role="3uHU7w">
+                    <property role="Xl_RC" value="." />
+                  </node>
+                  <node concept="3cpWs3" id="5FxxG02KDYj" role="3uHU7B">
+                    <node concept="3cpWs3" id="5FxxG02KC2Z" role="3uHU7B">
+                      <node concept="3cpWs3" id="5FxxG02KAPM" role="3uHU7B">
+                        <node concept="3cpWs3" id="5FxxG02K$c$" role="3uHU7B">
+                          <node concept="3cpWs3" id="5FxxG02KxYF" role="3uHU7B">
+                            <node concept="Xl_RD" id="5FxxG02Kw7c" role="3uHU7B">
+                              <property role="Xl_RC" value="It is mandatory to implement method '" />
+                            </node>
+                            <node concept="2j1LYi" id="5FxxG02KyNf" role="3uHU7w">
+                              <ref role="2j1LYj" node="5FxxG02Iq6u" resolve="methodName" />
+                            </node>
+                          </node>
+                          <node concept="Xl_RD" id="5FxxG02K$oM" role="3uHU7w">
+                            <property role="Xl_RC" value="' of concept " />
+                          </node>
+                        </node>
+                        <node concept="2j1LYi" id="5FxxG02KBQh" role="3uHU7w">
+                          <ref role="2j1LYj" node="5FxxG02Iq75" resolve="parentConceptName" />
+                        </node>
+                      </node>
+                      <node concept="Xl_RD" id="5FxxG02KCfx" role="3uHU7w">
+                        <property role="Xl_RC" value=" in subConcept " />
+                      </node>
+                    </node>
+                    <node concept="2OqwBi" id="5FxxG02KEvQ" role="3uHU7w">
+                      <node concept="1JQnki" id="5FxxG02KEaZ" role="2Oq$k0" />
+                      <node concept="3TrEf2" id="5FxxG02KEV7" role="2OqNvi">
+                        <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbF" id="5FxxG02KG6l" role="3cqZAp">
+              <node concept="2OqwBi" id="5FxxG02KHKG" role="3clFbG">
+                <node concept="37vLTw" id="5FxxG02KG6j" role="2Oq$k0">
+                  <ref role="3cqZAo" node="5FxxG02Itse" resolve="res" />
+                </node>
+                <node concept="TSZUe" id="5FxxG02KKCx" role="2OqNvi">
+                  <node concept="2ShNRf" id="5FxxG02KLbR" role="25WWJ7">
+                    <node concept="1pGfFk" id="5FxxG02KOi3" role="2ShVmc">
+                      <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                      <node concept="37vLTw" id="5FxxG02KOMJ" role="37wK5m">
+                        <ref role="3cqZAo" node="5FxxG02Kvzt" resolve="msg" />
+                      </node>
+                      <node concept="1JQnki" id="5FxxG02KPzd" role="37wK5m" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+          <node concept="1Wc70l" id="5FxxG02JYiy" role="3clFbw">
+            <node concept="3fqX7Q" id="5FxxG02OHj3" role="3uHU7w">
+              <node concept="37vLTw" id="5FxxG02OHj5" role="3fr31v">
+                <ref role="3cqZAo" node="5FxxG02Kht6" resolve="hasImplementedMethod" />
+              </node>
+            </node>
+            <node concept="1Wc70l" id="5FxxG02PcbM" role="3uHU7B">
+              <node concept="37vLTw" id="5FxxG02Pcvt" role="3uHU7B">
+                <ref role="3cqZAo" node="5FxxG02OHOc" resolve="superConceptHasMethod" />
+              </node>
+              <node concept="37vLTw" id="5FxxG02JVYn" role="3uHU7w">
+                <ref role="3cqZAo" node="5FxxG02JVY3" resolve="isSubConcept" />
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="5FxxG02ID88" role="3cqZAp" />
+        <node concept="3cpWs6" id="5FxxG02ItRd" role="3cqZAp">
+          <node concept="37vLTw" id="5FxxG02Iu7W" role="3cqZAk">
+            <ref role="3cqZAo" node="5FxxG02Itse" resolve="res" />
+          </node>
+        </node>
+      </node>
+    </node>
+    <node concept="2j1K4_" id="5FxxG02Iq6u" role="2j1K4A">
+      <property role="TrG5h" value="methodName" />
+      <node concept="17QB3L" id="5FxxG02Iq6C" role="2j1LY4" />
+    </node>
+    <node concept="2j1K4_" id="5FxxG02Iq75" role="2j1K4A">
+      <property role="TrG5h" value="parentConceptName" />
+      <node concept="17QB3L" id="5FxxG02Jmoc" role="2j1LY4" />
+    </node>
+    <node concept="2j1LYv" id="5FxxG02Itkk" role="2j1YRv">
+      <node concept="2j1LYi" id="5FxxG02Itkl" role="2j1YQj">
+        <ref role="2j1LYj" node="5FxxG02Iq6u" resolve="methodName" />
+      </node>
+      <node concept="Xl_RD" id="5FxxG02M$Wx" role="2j1LYg" />
+    </node>
+    <node concept="2j1LYv" id="5FxxG02ItkT" role="2j1YRv">
+      <node concept="2j1LYi" id="5FxxG02ItkU" role="2j1YQj">
+        <ref role="2j1LYj" node="5FxxG02Iq75" resolve="parentConcept" />
+      </node>
+      <node concept="Xl_RD" id="5FxxG02JmAe" role="2j1LYg">
+        <property role="Xl_RC" value="BaseConcept" />
+      </node>
+    </node>
+    <node concept="1Pa9Pv" id="5FxxG02Itn9" role="1MIJl8">
+      <node concept="1PaTwC" id="5FxxG02Itna" role="1PaQFQ">
+        <node concept="3oM_SD" id="5FxxG02Itnu" role="1PaTwD">
+          <property role="3oM_SC" value="Determines" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItnD" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Ito8" role="1PaTwD">
+          <property role="3oM_SC" value="whether" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Ito9" role="1PaTwD">
+          <property role="3oM_SC" value="a" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itoa" role="1PaTwD">
+          <property role="3oM_SC" value="particular" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itob" role="1PaTwD">
+          <property role="3oM_SC" value="virtual" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itoc" role="1PaTwD">
+          <property role="3oM_SC" value="method," />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itod" role="1PaTwD">
+          <property role="3oM_SC" value="specified" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itoe" role="1PaTwD">
+          <property role="3oM_SC" value="by" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itor" role="1PaTwD">
+          <property role="3oM_SC" value="its" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itos" role="1PaTwD">
+          <property role="3oM_SC" value="name," />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itoh" role="1PaTwD">
+          <property role="3oM_SC" value="defined" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itoi" role="1PaTwD">
+          <property role="3oM_SC" value="in" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itoj" role="1PaTwD">
+          <property role="3oM_SC" value="a" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itok" role="1PaTwD">
+          <property role="3oM_SC" value="given" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itol" role="1PaTwD">
+          <property role="3oM_SC" value="concept" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itom" role="1PaTwD">
+          <property role="3oM_SC" value="is" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Iton" role="1PaTwD">
+          <property role="3oM_SC" value="overridden" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itoo" role="1PaTwD">
+          <property role="3oM_SC" value="in" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itop" role="1PaTwD">
+          <property role="3oM_SC" value="all" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itoq" role="1PaTwD">
+          <property role="3oM_SC" value="subConcepts." />
+        </node>
+      </node>
+      <node concept="1PaTwC" id="5FxxG02Itou" role="1PaQFQ">
+        <node concept="3oM_SD" id="5FxxG02Itot" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+      </node>
+      <node concept="1PaTwC" id="5FxxG02Itpc" role="1PaQFQ">
+        <node concept="3oM_SD" id="5FxxG02Itpb" role="1PaTwD">
+          <property role="3oM_SC" value="Parameters:" />
+        </node>
+      </node>
+      <node concept="1PaTwC" id="5FxxG02Itpi" role="1PaQFQ">
+        <node concept="3oM_SD" id="5FxxG02Itph" role="1PaTwD">
+          <property role="3oM_SC" value="----------" />
+        </node>
+      </node>
+      <node concept="1PaTwC" id="5FxxG02Itpo" role="1PaQFQ">
+        <node concept="3oM_SD" id="5FxxG02Itpu" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itpv" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itpw" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itpx" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itpy" role="1PaTwD">
+          <property role="3oM_SC" value="methodName:" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itpz" role="1PaTwD">
+          <property role="3oM_SC" value="string" />
+        </node>
+      </node>
+      <node concept="1PaTwC" id="5FxxG02Itp_" role="1PaQFQ">
+        <node concept="3oM_SD" id="5FxxG02Itp$" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItpO" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItpP" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItpQ" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItpR" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItpS" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItpT" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItpU" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItpV" role="1PaTwD">
+          <property role="3oM_SC" value="The" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItpW" role="1PaTwD">
+          <property role="3oM_SC" value="name" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItpX" role="1PaTwD">
+          <property role="3oM_SC" value="of" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItpY" role="1PaTwD">
+          <property role="3oM_SC" value="the" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itq1" role="1PaTwD">
+          <property role="3oM_SC" value="method" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itq2" role="1PaTwD">
+          <property role="3oM_SC" value="to" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itq3" role="1PaTwD">
+          <property role="3oM_SC" value="check" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itq4" role="1PaTwD">
+          <property role="3oM_SC" value="for" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itq5" role="1PaTwD">
+          <property role="3oM_SC" value="overrides." />
+        </node>
+      </node>
+      <node concept="1PaTwC" id="5FxxG02Itq7" role="1PaQFQ">
+        <node concept="3oM_SD" id="5FxxG02Itq6" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItqG" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItqH" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItqI" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItqJ" role="1PaTwD">
+          <property role="3oM_SC" value="parentConcept:" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02ItqK" role="1PaTwD">
+          <property role="3oM_SC" value="string" />
+        </node>
+      </node>
+      <node concept="1PaTwC" id="5FxxG02ItqM" role="1PaQFQ">
+        <node concept="3oM_SD" id="5FxxG02ItqL" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itr1" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itr2" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itr3" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itr4" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itr5" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itr6" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itr7" role="1PaTwD">
+          <property role="3oM_SC" value="" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02RZgI" role="1PaTwD">
+          <property role="3oM_SC" value="The" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02RZgJ" role="1PaTwD">
+          <property role="3oM_SC" value="name" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Its6" role="1PaTwD">
+          <property role="3oM_SC" value="of" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Its7" role="1PaTwD">
+          <property role="3oM_SC" value="specific" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Its8" role="1PaTwD">
+          <property role="3oM_SC" value="concept" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itrf" role="1PaTwD">
+          <property role="3oM_SC" value="in" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itrg" role="1PaTwD">
+          <property role="3oM_SC" value="which" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itrh" role="1PaTwD">
+          <property role="3oM_SC" value="the" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itri" role="1PaTwD">
+          <property role="3oM_SC" value="virtual" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itrj" role="1PaTwD">
+          <property role="3oM_SC" value="method" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itrk" role="1PaTwD">
+          <property role="3oM_SC" value="is" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02Itrl" role="1PaTwD">
+          <property role="3oM_SC" value="defined." />
+        </node>
+      </node>
+    </node>
+  </node>
 </model>
 

From be686a488dec11f147df1561bbd8571814dcaebc Mon Sep 17 00:00:00 2001
From: Vit Losenicky <vit.losenicky@porsche-engineering.cz>
Date: Mon, 4 Nov 2024 16:14:23 +0100
Subject: [PATCH 32/42] fixes resolve info

---
 ....mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
index 62bf15dd..3cdc2ee3 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
@@ -116,9 +116,6 @@
         <child id="7741759128795045752" name="exp" index="2j1LYg" />
         <child id="7741759128795065723" name="paramRef" index="2j1YQj" />
       </concept>
-      <concept id="7223240310078271419" name="org.mpsqa.lint.generic.structure.ILinterResultsContainer" flags="ngI" index="3dgnlL">
-        <property id="7223240310078527797" name="failOnlyOnNewResults" index="3dJkfZ" />
-      </concept>
       <concept id="3423774024185833116" name="org.mpsqa.lint.generic.structure.NodeReferenceWord" flags="ng" index="3Djtr9">
         <child id="3423774024185984305" name="fullyQualifiedReference" index="3DkKl$" />
       </concept>
@@ -1114,7 +1111,6 @@
   </node>
   <node concept="1MIHA_" id="5FxxG02IpQB">
     <property role="TrG5h" value="mandatory_virtual_method_override" />
-    <property role="3dJkfZ" value="true" />
     <node concept="1JQnix" id="5FxxG02IpQE" role="14J5yK">
       <ref role="1XX52x" to="1i04:hP3h7Gq" resolve="ConceptBehavior" />
       <node concept="3clFbS" id="5FxxG02IpQF" role="2VODD2">
@@ -1551,7 +1547,7 @@
     </node>
     <node concept="2j1LYv" id="5FxxG02ItkT" role="2j1YRv">
       <node concept="2j1LYi" id="5FxxG02ItkU" role="2j1YQj">
-        <ref role="2j1LYj" node="5FxxG02Iq75" resolve="parentConcept" />
+        <ref role="2j1LYj" node="5FxxG02Iq75" resolve="parentConceptName" />
       </node>
       <node concept="Xl_RD" id="5FxxG02JmAe" role="2j1LYg">
         <property role="Xl_RC" value="BaseConcept" />

From b5b99c050f39c2be9a8d8f906e49531666d6fc36 Mon Sep 17 00:00:00 2001
From: Vit Losenicky <87519379+vit-losenicky@users.noreply.github.com>
Date: Tue, 5 Nov 2024 03:15:40 +0100
Subject: [PATCH 33/42] adds linter that ensures all smodelAttributes are of
 concept Attribute. (#222)

---
 ...sqa.lint.generic.linters_library.nodes.mps | 169 ++++++++++++++++++
 1 file changed, 169 insertions(+)

diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.nodes.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.nodes.mps
index 42247749..f6041de8 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.nodes.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.nodes.mps
@@ -24,6 +24,7 @@
     <import index="tpce" ref="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" implicit="true" />
     <import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" implicit="true" />
     <import index="lui2" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.module(MPS.OpenAPI/)" implicit="true" />
+    <import index="tpcu" ref="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" implicit="true" />
   </imports>
   <registry>
     <language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
@@ -179,6 +180,7 @@
       <concept id="1138411891628" name="jetbrains.mps.lang.smodel.structure.SNodeOperation" flags="nn" index="eCIE_">
         <child id="1144104376918" name="parameter" index="1xVPHs" />
       </concept>
+      <concept id="1179409122411" name="jetbrains.mps.lang.smodel.structure.Node_ConceptMethodCall" flags="nn" index="2qgKlT" />
       <concept id="7453996997717780434" name="jetbrains.mps.lang.smodel.structure.Node_GetSConceptOperation" flags="nn" index="2yIwOk" />
       <concept id="8758390115029295477" name="jetbrains.mps.lang.smodel.structure.SReferenceType" flags="in" index="2z4iKi" />
       <concept id="8758390115028452779" name="jetbrains.mps.lang.smodel.structure.Node_GetReferencesOperation" flags="nn" index="2z74zc" />
@@ -214,6 +216,9 @@
       <concept id="1138056143562" name="jetbrains.mps.lang.smodel.structure.SLinkAccess" flags="nn" index="3TrEf2">
         <reference id="1138056516764" name="link" index="3Tt5mk" />
       </concept>
+      <concept id="1138056282393" name="jetbrains.mps.lang.smodel.structure.SLinkListAccess" flags="nn" index="3Tsc0h">
+        <reference id="1138056546658" name="link" index="3TtcxE" />
+      </concept>
     </language>
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
       <concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
@@ -302,6 +307,7 @@
       </concept>
       <concept id="1165530316231" name="jetbrains.mps.baseLanguage.collections.structure.IsEmptyOperation" flags="nn" index="1v1jN8" />
       <concept id="1208542034276" name="jetbrains.mps.baseLanguage.collections.structure.MapClearOperation" flags="nn" index="1yHZxX" />
+      <concept id="1202120902084" name="jetbrains.mps.baseLanguage.collections.structure.WhereOperation" flags="nn" index="3zZkjj" />
       <concept id="1197932370469" name="jetbrains.mps.baseLanguage.collections.structure.MapElement" flags="nn" index="3EllGN">
         <child id="1197932505799" name="map" index="3ElQJh" />
         <child id="1197932525128" name="key" index="3ElVtu" />
@@ -2661,5 +2667,168 @@
       </node>
     </node>
   </node>
+  <node concept="1MIHA_" id="5FxxG02Td7T">
+    <property role="TrG5h" value="node_with_smodelattribute_other_than_attribute" />
+    <node concept="1JQnix" id="5FxxG02Td7U" role="14J5yK">
+      <node concept="3clFbS" id="5FxxG02Td7V" role="2VODD2">
+        <node concept="3cpWs8" id="5FxxG02Tdo0" role="3cqZAp">
+          <node concept="3cpWsn" id="5FxxG02Tdo3" role="3cpWs9">
+            <property role="TrG5h" value="res" />
+            <node concept="_YKpA" id="5FxxG02TdnY" role="1tU5fm">
+              <node concept="3uibUv" id="5FxxG02TdoT" role="_ZDj9">
+                <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                <node concept="17QB3L" id="5FxxG02TdqL" role="11_B2D" />
+                <node concept="3Tqbb2" id="5FxxG02Tdta" role="11_B2D" />
+              </node>
+            </node>
+            <node concept="2ShNRf" id="5FxxG02Tdya" role="33vP2m">
+              <node concept="Tc6Ow" id="5FxxG02Tdy2" role="2ShVmc">
+                <node concept="3uibUv" id="5FxxG02Tdy3" role="HW$YZ">
+                  <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                  <node concept="17QB3L" id="5FxxG02Tdy4" role="11_B2D" />
+                  <node concept="3Tqbb2" id="5FxxG02Tdy5" role="11_B2D" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="5FxxG02Td$D" role="3cqZAp" />
+        <node concept="2Gpval" id="5FxxG02Td_w" role="3cqZAp">
+          <node concept="2GrKxI" id="5FxxG02Td_y" role="2Gsz3X">
+            <property role="TrG5h" value="thisAttribute" />
+          </node>
+          <node concept="2OqwBi" id="5FxxG02TfLa" role="2GsD0m">
+            <node concept="2OqwBi" id="5FxxG02Te1k" role="2Oq$k0">
+              <node concept="1JQnki" id="5FxxG02TdTP" role="2Oq$k0" />
+              <node concept="3Tsc0h" id="5FxxG02TeaF" role="2OqNvi">
+                <ref role="3TtcxE" to="tpck:4uZwTti3__2" resolve="smodelAttribute" />
+              </node>
+            </node>
+            <node concept="3zZkjj" id="5FxxG02Ti8r" role="2OqNvi">
+              <node concept="1bVj0M" id="5FxxG02Ti8t" role="23t8la">
+                <node concept="3clFbS" id="5FxxG02Ti8u" role="1bW5cS">
+                  <node concept="3clFbF" id="5FxxG02TifS" role="3cqZAp">
+                    <node concept="3fqX7Q" id="5FxxG02TifQ" role="3clFbG">
+                      <node concept="2OqwBi" id="5FxxG02TiBS" role="3fr31v">
+                        <node concept="37vLTw" id="5FxxG02Tig0" role="2Oq$k0">
+                          <ref role="3cqZAo" node="5FxxG02Ti8v" resolve="it" />
+                        </node>
+                        <node concept="1mIQ4w" id="5FxxG02Tjm2" role="2OqNvi">
+                          <node concept="chp4Y" id="5FxxG02Tjr_" role="cj9EA">
+                            <ref role="cht4Q" to="tpck:4uZwTti3_$T" resolve="Attribute" />
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                </node>
+                <node concept="gl6BB" id="5FxxG02Ti8v" role="1bW2Oz">
+                  <property role="TrG5h" value="it" />
+                  <node concept="2jxLKc" id="5FxxG02Ti8w" role="1tU5fm" />
+                </node>
+              </node>
+            </node>
+          </node>
+          <node concept="3clFbS" id="5FxxG02Td_A" role="2LFqv$">
+            <node concept="3cpWs8" id="5FxxG02TjEc" role="3cqZAp">
+              <node concept="3cpWsn" id="5FxxG02TjEf" role="3cpWs9">
+                <property role="TrG5h" value="msg" />
+                <node concept="17QB3L" id="5FxxG02TjEb" role="1tU5fm" />
+                <node concept="3cpWs3" id="5FxxG02TsNR" role="33vP2m">
+                  <node concept="Xl_RD" id="5FxxG02TsXQ" role="3uHU7w">
+                    <property role="Xl_RC" value=" is not subtype of Attribute." />
+                  </node>
+                  <node concept="3cpWs3" id="5FxxG02TsvS" role="3uHU7B">
+                    <node concept="3cpWs3" id="5FxxG02TrOM" role="3uHU7B">
+                      <node concept="3cpWs3" id="5FxxG02TpZ7" role="3uHU7B">
+                        <node concept="Xl_RD" id="5FxxG02TjKx" role="3uHU7B">
+                          <property role="Xl_RC" value="Attribute " />
+                        </node>
+                        <node concept="2OqwBi" id="5FxxG02TqxM" role="3uHU7w">
+                          <node concept="2GrUjf" id="5FxxG02Tq8u" role="2Oq$k0">
+                            <ref role="2Gs0qQ" node="5FxxG02Td_y" resolve="thisAttribute" />
+                          </node>
+                          <node concept="2qgKlT" id="5FxxG02TrCB" role="2OqNvi">
+                            <ref role="37wK5l" to="tpcu:hEwIMiw" resolve="getPresentation" />
+                          </node>
+                        </node>
+                      </node>
+                      <node concept="Xl_RD" id="5FxxG02TrOV" role="3uHU7w">
+                        <property role="Xl_RC" value=" of node " />
+                      </node>
+                    </node>
+                    <node concept="1JQnki" id="5FxxG02TsDH" role="3uHU7w" />
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbF" id="5FxxG02TjWC" role="3cqZAp">
+              <node concept="2OqwBi" id="5FxxG02Tl87" role="3clFbG">
+                <node concept="37vLTw" id="5FxxG02TjWA" role="2Oq$k0">
+                  <ref role="3cqZAo" node="5FxxG02Tdo3" resolve="res" />
+                </node>
+                <node concept="TSZUe" id="5FxxG02TmLu" role="2OqNvi">
+                  <node concept="2ShNRf" id="5FxxG02TmUS" role="25WWJ7">
+                    <node concept="1pGfFk" id="5FxxG02TnEv" role="2ShVmc">
+                      <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                      <node concept="37vLTw" id="5FxxG02TnX5" role="37wK5m">
+                        <ref role="3cqZAo" node="5FxxG02TjEf" resolve="msg" />
+                      </node>
+                      <node concept="1JQnki" id="5FxxG02Tovw" role="37wK5m" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3cpWs6" id="5FxxG02Tjzd" role="3cqZAp">
+          <node concept="37vLTw" id="5FxxG02Tj$c" role="3cqZAk">
+            <ref role="3cqZAo" node="5FxxG02Tdo3" resolve="res" />
+          </node>
+        </node>
+      </node>
+    </node>
+    <node concept="1Pa9Pv" id="5FxxG02Tu$d" role="1MIJl8">
+      <node concept="1PaTwC" id="5FxxG02Tu$e" role="1PaQFQ">
+        <node concept="3oM_SD" id="5FxxG02TvJT" role="1PaTwD">
+          <property role="3oM_SC" value="Identifies" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02TvJU" role="1PaTwD">
+          <property role="3oM_SC" value="instances" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02TvJV" role="1PaTwD">
+          <property role="3oM_SC" value="stored" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02TvJW" role="1PaTwD">
+          <property role="3oM_SC" value="as" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02TvJX" role="1PaTwD">
+          <property role="3oM_SC" value="smodelAttribute" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02TvJY" role="1PaTwD">
+          <property role="3oM_SC" value="which" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02TvJZ" role="1PaTwD">
+          <property role="3oM_SC" value="are" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02TvK0" role="1PaTwD">
+          <property role="3oM_SC" value="not" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02TvK1" role="1PaTwD">
+          <property role="3oM_SC" value="subConcepts" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02TvK2" role="1PaTwD">
+          <property role="3oM_SC" value="of" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02TvK5" role="1PaTwD">
+          <property role="3oM_SC" value="Attribute" />
+        </node>
+        <node concept="3oM_SD" id="5FxxG02TvK6" role="1PaTwD">
+          <property role="3oM_SC" value="concept." />
+        </node>
+      </node>
+    </node>
+  </node>
 </model>
 

From b78f7a10fcc4424354ac741aa248460ad7ccf18e Mon Sep 17 00:00:00 2001
From: Vit Losenicky <vit.losenicky@porsche-engineering.cz>
Date: Tue, 5 Nov 2024 10:34:56 +0100
Subject: [PATCH 34/42] updates logic of the linter

---
 ...s_lang.linters_library.behavior_aspect.mps | 1268 +++++++++--------
 1 file changed, 694 insertions(+), 574 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
index 3cdc2ee3..ad4891d9 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
@@ -5,21 +5,24 @@
     <use id="40ab19e9-751a-4433-b645-0e65160e58a0" name="org.mpsqa.lint.generic" version="1" />
     <use id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel" version="19" />
     <use id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections" version="2" />
+    <use id="1a8554c4-eb84-43ba-8c34-6f0d90c6e75a" name="jetbrains.mps.lang.smodel.query" version="3" />
   </languages>
   <imports>
     <import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" />
     <import index="1i04" ref="r:3270011d-8b2d-4938-8dff-d256a759e017(jetbrains.mps.lang.behavior.structure)" />
     <import index="tpek" ref="r:00000000-0000-4000-0000-011c895902c0(jetbrains.mps.baseLanguage.behavior)" />
     <import index="zn9m" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.util(MPS.IDEA/)" />
+    <import index="lui2" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.module(MPS.OpenAPI/)" />
+    <import index="w1kc" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.smodel(MPS.Core/)" />
+    <import index="tpce" ref="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" />
+    <import index="z1c3" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.project(MPS.Core/)" />
     <import index="csvn" ref="r:a91e42c5-728b-4866-86c4-d97454f4aee4(jetbrains.mps.lang.behavior.behavior)" implicit="true" />
     <import index="tpee" ref="r:00000000-0000-4000-0000-011c895902ca(jetbrains.mps.baseLanguage.structure)" implicit="true" />
-    <import index="tpce" ref="r:00000000-0000-4000-0000-011c89590292(jetbrains.mps.lang.structure.structure)" implicit="true" />
     <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
-    <import index="tpcn" ref="r:00000000-0000-4000-0000-011c8959028b(jetbrains.mps.lang.structure.behavior)" implicit="true" />
+    <import index="tpcu" ref="r:00000000-0000-4000-0000-011c89590282(jetbrains.mps.lang.core.behavior)" implicit="true" />
   </imports>
   <registry>
     <language id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage">
-      <concept id="1080223426719" name="jetbrains.mps.baseLanguage.structure.OrExpression" flags="nn" index="22lmx$" />
       <concept id="1215693861676" name="jetbrains.mps.baseLanguage.structure.BaseAssignmentExpression" flags="nn" index="d038R">
         <child id="1068498886297" name="rValue" index="37vLTx" />
         <child id="1068498886295" name="lValue" index="37vLTJ" />
@@ -43,15 +46,19 @@
         <property id="1070475926801" name="value" index="Xl_RC" />
       </concept>
       <concept id="1070534058343" name="jetbrains.mps.baseLanguage.structure.NullLiteral" flags="nn" index="10Nm6u" />
-      <concept id="1070534644030" name="jetbrains.mps.baseLanguage.structure.BooleanType" flags="in" index="10P_77" />
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
+        <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
+      </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
         <reference id="1068581517664" name="variableDeclaration" index="3cqZAo" />
       </concept>
       <concept id="1068498886294" name="jetbrains.mps.baseLanguage.structure.AssignmentExpression" flags="nn" index="37vLTI" />
       <concept id="1225271177708" name="jetbrains.mps.baseLanguage.structure.StringType" flags="in" index="17QB3L" />
+      <concept id="1225271283259" name="jetbrains.mps.baseLanguage.structure.NPEEqualsExpression" flags="nn" index="17R0WA" />
+      <concept id="1225271408483" name="jetbrains.mps.baseLanguage.structure.IsNotEmptyOperation" flags="nn" index="17RvpY" />
       <concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
         <child id="5680397130376446158" name="type" index="1tU5fm" />
       </concept>
@@ -66,7 +73,6 @@
       <concept id="1068580123136" name="jetbrains.mps.baseLanguage.structure.StatementList" flags="sn" stub="5293379017992965193" index="3clFbS">
         <child id="1068581517665" name="statement" index="3cqZAp" />
       </concept>
-      <concept id="1068580123137" name="jetbrains.mps.baseLanguage.structure.BooleanConstant" flags="nn" index="3clFbT" />
       <concept id="1068581242875" name="jetbrains.mps.baseLanguage.structure.PlusExpression" flags="nn" index="3cpWs3" />
       <concept id="1068581242878" name="jetbrains.mps.baseLanguage.structure.ReturnStatement" flags="nn" index="3cpWs6">
         <child id="1068581517676" name="expression" index="3cqZAk" />
@@ -75,9 +81,6 @@
         <child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
       </concept>
       <concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
-      <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
-        <child id="1081516765348" name="expression" index="3fr31v" />
-      </concept>
       <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
@@ -97,9 +100,7 @@
         <child id="1163668922816" name="ifTrue" index="3K4E3e" />
         <child id="1163668934364" name="ifFalse" index="3K4GZi" />
       </concept>
-      <concept id="6329021646629104954" name="jetbrains.mps.baseLanguage.structure.SingleLineComment" flags="nn" index="3SKdUt">
-        <child id="8356039341262087992" name="line" index="1aUNEU" />
-      </concept>
+      <concept id="1082113931046" name="jetbrains.mps.baseLanguage.structure.ContinueStatement" flags="nn" index="3N13vt" />
       <concept id="1080120340718" name="jetbrains.mps.baseLanguage.structure.AndExpression" flags="nn" index="1Wc70l" />
     </language>
     <language id="40ab19e9-751a-4433-b645-0e65160e58a0" name="org.mpsqa.lint.generic">
@@ -116,6 +117,9 @@
         <child id="7741759128795045752" name="exp" index="2j1LYg" />
         <child id="7741759128795065723" name="paramRef" index="2j1YQj" />
       </concept>
+      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ngI" index="3miP$Z">
+        <property id="7008376823202030902" name="skipEvaluation" index="3miQiw" />
+      </concept>
       <concept id="3423774024185833116" name="org.mpsqa.lint.generic.structure.NodeReferenceWord" flags="ng" index="3Djtr9">
         <child id="3423774024185984305" name="fullyQualifiedReference" index="3DkKl$" />
       </concept>
@@ -127,11 +131,13 @@
       </concept>
       <concept id="2940128608222714821" name="org.mpsqa.lint.generic.structure.NodeCheckingFunction" flags="ig" index="1JQnix" />
       <concept id="2940128608222714486" name="org.mpsqa.lint.generic.structure.ConceptFunctionParameter_Node" flags="nn" index="1JQnki" />
+      <concept id="2555875871752198907" name="org.mpsqa.lint.generic.structure.ConceptFunctionParameter_MPSProject" flags="ng" index="1MG55F" />
       <concept id="2555875871751836213" name="org.mpsqa.lint.generic.structure.CheckableScript" flags="ng" index="1MIHA_">
         <child id="7741759128795038158" name="additionalParameters" index="2j1K4A" />
         <child id="1716492013482699988" name="check" index="14J5yK" />
         <child id="2555875871751847640" name="documentation" index="1MIJl8" />
       </concept>
+      <concept id="2555875871751904530" name="org.mpsqa.lint.generic.structure.GenericCheckingFunction" flags="ig" index="1MIXq2" />
     </language>
     <language id="fd392034-7849-419d-9071-12563d152375" name="jetbrains.mps.baseLanguage.closures">
       <concept id="2524418899405758586" name="jetbrains.mps.baseLanguage.closures.structure.InferredClosureParameterDeclaration" flags="ig" index="gl6BB" />
@@ -151,6 +157,7 @@
       <concept id="4693937538533521280" name="jetbrains.mps.lang.smodel.structure.OfConceptOperation" flags="ng" index="v3k3i">
         <child id="4693937538533538124" name="requestedConcept" index="v3oSu" />
       </concept>
+      <concept id="1143234257716" name="jetbrains.mps.lang.smodel.structure.Node_GetModelOperation" flags="nn" index="I4A8Y" />
       <concept id="1145383075378" name="jetbrains.mps.lang.smodel.structure.SNodeListType" flags="in" index="2I9FWS">
         <reference id="1145383142433" name="elementConcept" index="2I9WkF" />
       </concept>
@@ -158,10 +165,10 @@
         <child id="1145567471833" name="createdType" index="2T96Bj" />
       </concept>
       <concept id="1171407110247" name="jetbrains.mps.lang.smodel.structure.Node_GetAncestorOperation" flags="nn" index="2Xjw5R" />
-      <concept id="1139621453865" name="jetbrains.mps.lang.smodel.structure.Node_IsInstanceOfOperation" flags="nn" index="1mIQ4w">
-        <child id="1177027386292" name="conceptArgument" index="cj9EA" />
+      <concept id="6995935425733782641" name="jetbrains.mps.lang.smodel.structure.Model_GetModule" flags="nn" index="13u695" />
+      <concept id="3562215692195599741" name="jetbrains.mps.lang.smodel.structure.SLinkImplicitSelect" flags="nn" index="13MTOL">
+        <reference id="3562215692195600259" name="link" index="13MTZf" />
       </concept>
-      <concept id="1172008320231" name="jetbrains.mps.lang.smodel.structure.Node_IsNotNullOperation" flags="nn" index="3x8VRR" />
       <concept id="1144101972840" name="jetbrains.mps.lang.smodel.structure.OperationParm_Concept" flags="ng" index="1xMEDy">
         <child id="1207343664468" name="conceptArgument" index="ri$Ld" />
       </concept>
@@ -196,13 +203,28 @@
         <child id="2535923850359271783" name="elements" index="1PaTwD" />
       </concept>
     </language>
+    <language id="1a8554c4-eb84-43ba-8c34-6f0d90c6e75a" name="jetbrains.mps.lang.smodel.query">
+      <concept id="7738379549910147341" name="jetbrains.mps.lang.smodel.query.structure.InstancesExpression" flags="ng" index="qVDSY">
+        <child id="7738379549910147342" name="conceptArg" index="qVDSX" />
+      </concept>
+      <concept id="4234138103881610891" name="jetbrains.mps.lang.smodel.query.structure.WithStatement" flags="ng" index="L3pyB">
+        <property id="192970713427626335" name="includeNonEditable" index="1Fhty8" />
+        <child id="4234138103881610935" name="scope" index="L3pyr" />
+        <child id="4234138103881610892" name="stmts" index="L3pyw" />
+      </concept>
+    </language>
     <language id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections">
       <concept id="1204796164442" name="jetbrains.mps.baseLanguage.collections.structure.InternalSequenceOperation" flags="nn" index="23sCx2">
         <child id="1204796294226" name="closure" index="23t8la" />
       </concept>
+      <concept id="1176906603202" name="jetbrains.mps.baseLanguage.collections.structure.BinaryOperation" flags="nn" index="56pJg">
+        <child id="1176906787974" name="rightExpression" index="576Qk" />
+      </concept>
       <concept id="540871147943773365" name="jetbrains.mps.baseLanguage.collections.structure.SingleArgumentSequenceOperation" flags="nn" index="25WWJ4">
         <child id="540871147943773366" name="argument" index="25WWJ7" />
       </concept>
+      <concept id="1176921879268" name="jetbrains.mps.baseLanguage.collections.structure.IntersectOperation" flags="nn" index="60FfQ" />
+      <concept id="1176923520476" name="jetbrains.mps.baseLanguage.collections.structure.ExcludeOperation" flags="nn" index="66VNe" />
       <concept id="1151688443754" name="jetbrains.mps.baseLanguage.collections.structure.ListType" flags="in" index="_YKpA">
         <child id="1151688676805" name="elementType" index="_ZDj9" />
       </concept>
@@ -218,7 +240,6 @@
       <concept id="1153944233411" name="jetbrains.mps.baseLanguage.collections.structure.ForEachVariableReference" flags="nn" index="2GrUjf">
         <reference id="1153944258490" name="variable" index="2Gs0qQ" />
       </concept>
-      <concept id="1235566554328" name="jetbrains.mps.baseLanguage.collections.structure.AnyOperation" flags="nn" index="2HwmR7" />
       <concept id="1237721394592" name="jetbrains.mps.baseLanguage.collections.structure.AbstractContainerCreator" flags="nn" index="HWqM0">
         <child id="1237721435807" name="elementType" index="HW$YZ" />
       </concept>
@@ -241,7 +262,6 @@
         <child id="1197932505799" name="map" index="3ElQJh" />
         <child id="1197932525128" name="key" index="3ElVtu" />
       </concept>
-      <concept id="1176501494711" name="jetbrains.mps.baseLanguage.collections.structure.IsNotEmptyOperation" flags="nn" index="3GX2aA" />
     </language>
   </registry>
   <node concept="1MIHA_" id="3pz5R1DHoLR">
@@ -1109,686 +1129,786 @@
       </node>
     </node>
   </node>
-  <node concept="1MIHA_" id="5FxxG02IpQB">
+  <node concept="1MIHA_" id="3cj_LrgPwdF">
     <property role="TrG5h" value="mandatory_virtual_method_override" />
-    <node concept="1JQnix" id="5FxxG02IpQE" role="14J5yK">
-      <ref role="1XX52x" to="1i04:hP3h7Gq" resolve="ConceptBehavior" />
-      <node concept="3clFbS" id="5FxxG02IpQF" role="2VODD2">
-        <node concept="3cpWs8" id="5FxxG02Itsb" role="3cqZAp">
-          <node concept="3cpWsn" id="5FxxG02Itse" role="3cpWs9">
-            <property role="TrG5h" value="res" />
-            <node concept="_YKpA" id="5FxxG02Its9" role="1tU5fm">
-              <node concept="3uibUv" id="5FxxG02ItG7" role="_ZDj9">
-                <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
-                <node concept="17QB3L" id="5FxxG02ItHv" role="11_B2D" />
-                <node concept="3Tqbb2" id="5FxxG02ItIW" role="11_B2D" />
-              </node>
-            </node>
-            <node concept="2ShNRf" id="5FxxG02ItLY" role="33vP2m">
-              <node concept="Tc6Ow" id="5FxxG02ItOH" role="2ShVmc">
-                <node concept="3uibUv" id="5FxxG02ItOJ" role="HW$YZ">
-                  <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
-                  <node concept="17QB3L" id="5FxxG02ItOK" role="11_B2D" />
-                  <node concept="3Tqbb2" id="5FxxG02ItOL" role="11_B2D" />
-                </node>
-              </node>
-            </node>
-          </node>
-        </node>
-        <node concept="3clFbH" id="5FxxG02ItQZ" role="3cqZAp" />
-        <node concept="3SKdUt" id="5FxxG02ICW6" role="3cqZAp">
-          <node concept="1PaTwC" id="5FxxG02ICW7" role="1aUNEU">
-            <node concept="3oM_SD" id="5FxxG02ID1f" role="1PaTwD">
-              <property role="3oM_SC" value="skip" />
-            </node>
-            <node concept="3oM_SD" id="5FxxG02ID1O" role="1PaTwD">
-              <property role="3oM_SC" value="for" />
-            </node>
-            <node concept="3oM_SD" id="5FxxG02ID2d" role="1PaTwD">
-              <property role="3oM_SC" value="abstract" />
-            </node>
-            <node concept="3oM_SD" id="5FxxG02ID34" role="1PaTwD">
-              <property role="3oM_SC" value="concept" />
-            </node>
-            <node concept="3oM_SD" id="5FxxG02ID4v" role="1PaTwD">
-              <property role="3oM_SC" value="or" />
-            </node>
-            <node concept="3oM_SD" id="5FxxG02ID4M" role="1PaTwD">
-              <property role="3oM_SC" value="interface" />
-            </node>
-            <node concept="3oM_SD" id="5FxxG02ID5J" role="1PaTwD">
-              <property role="3oM_SC" value="concept" />
-            </node>
-            <node concept="3oM_SD" id="5FxxG02ID6M" role="1PaTwD">
-              <property role="3oM_SC" value="declarations" />
-            </node>
-          </node>
-        </node>
-        <node concept="3clFbJ" id="5FxxG02IuDa" role="3cqZAp">
-          <node concept="3clFbS" id="5FxxG02IuDc" role="3clFbx">
-            <node concept="3cpWs6" id="5FxxG02IBqZ" role="3cqZAp">
-              <node concept="37vLTw" id="5FxxG02IBrY" role="3cqZAk">
-                <ref role="3cqZAo" node="5FxxG02Itse" resolve="res" />
-              </node>
-            </node>
-          </node>
-          <node concept="22lmx$" id="5FxxG02I$Ma" role="3clFbw">
-            <node concept="2OqwBi" id="5FxxG02IAPr" role="3uHU7w">
-              <node concept="2OqwBi" id="5FxxG02I_8B" role="2Oq$k0">
-                <node concept="1JQnki" id="5FxxG02I_5c" role="2Oq$k0" />
-                <node concept="3TrEf2" id="5FxxG02IArH" role="2OqNvi">
-                  <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
-                </node>
-              </node>
-              <node concept="1mIQ4w" id="5FxxG02IAWF" role="2OqNvi">
-                <node concept="chp4Y" id="5FxxG02IB0c" role="cj9EA">
-                  <ref role="cht4Q" to="tpce:h0PlHMJ" resolve="InterfaceConceptDeclaration" />
-                </node>
-              </node>
-            </node>
-            <node concept="2OqwBi" id="5FxxG02Ix_M" role="3uHU7B">
-              <node concept="2OqwBi" id="5FxxG02IvkC" role="2Oq$k0">
-                <node concept="1JQnki" id="5FxxG02IuVk" role="2Oq$k0" />
-                <node concept="3TrEf2" id="5FxxG02I_F3" role="2OqNvi">
-                  <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
-                </node>
-              </node>
-              <node concept="3TrcHB" id="5FxxG02IAbe" role="2OqNvi">
-                <ref role="3TsBF5" to="tpce:40UcGlRb7V2" resolve="abstract" />
-              </node>
-            </node>
-          </node>
-        </node>
-        <node concept="3clFbH" id="5FxxG02IuaL" role="3cqZAp" />
-        <node concept="3cpWs8" id="5FxxG02PsS7" role="3cqZAp">
-          <node concept="3cpWsn" id="5FxxG02PsS8" role="3cpWs9">
-            <property role="TrG5h" value="superConceptMethods" />
-            <node concept="A3Dl8" id="5FxxG02PsMz" role="1tU5fm">
-              <node concept="3Tqbb2" id="5FxxG02PsMA" role="A3Ik2">
-                <ref role="ehGHo" to="1i04:hP3i0lY" resolve="ConceptMethodDeclaration" />
-              </node>
-            </node>
-            <node concept="2OqwBi" id="5FxxG02PsS9" role="33vP2m">
-              <node concept="2OqwBi" id="5FxxG02PsSa" role="2Oq$k0">
-                <node concept="2OqwBi" id="5FxxG02PsSb" role="2Oq$k0">
-                  <node concept="1JQnki" id="5FxxG02PsSc" role="2Oq$k0" />
-                  <node concept="2qgKlT" id="5FxxG02PsSd" role="2OqNvi">
-                    <ref role="37wK5l" to="csvn:1$X$vL9L8i8" resolve="getAllSuperBehaviors" />
-                  </node>
-                </node>
-                <node concept="3zZkjj" id="5FxxG02PsSe" role="2OqNvi">
-                  <node concept="1bVj0M" id="5FxxG02PsSf" role="23t8la">
-                    <node concept="3clFbS" id="5FxxG02PsSg" role="1bW5cS">
-                      <node concept="3clFbF" id="5FxxG02PsSh" role="3cqZAp">
-                        <node concept="2OqwBi" id="5FxxG02PsSi" role="3clFbG">
-                          <node concept="2OqwBi" id="5FxxG02PsSj" role="2Oq$k0">
-                            <node concept="2OqwBi" id="5FxxG02PsSk" role="2Oq$k0">
-                              <node concept="37vLTw" id="5FxxG02PsSl" role="2Oq$k0">
-                                <ref role="3cqZAo" node="5FxxG02PsSq" resolve="it" />
-                              </node>
-                              <node concept="3TrEf2" id="5FxxG02PsSm" role="2OqNvi">
-                                <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
-                              </node>
-                            </node>
-                            <node concept="3TrcHB" id="5FxxG02PsSn" role="2OqNvi">
-                              <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                            </node>
-                          </node>
-                          <node concept="liA8E" id="5FxxG02PsSo" role="2OqNvi">
-                            <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
-                            <node concept="2j1LYi" id="5FxxG02PsSp" role="37wK5m">
-                              <ref role="2j1LYj" node="5FxxG02Iq75" resolve="parentConceptName" />
-                            </node>
-                          </node>
-                        </node>
-                      </node>
-                    </node>
-                    <node concept="gl6BB" id="5FxxG02PsSq" role="1bW2Oz">
-                      <property role="TrG5h" value="it" />
-                      <node concept="2jxLKc" id="5FxxG02PsSr" role="1tU5fm" />
-                    </node>
-                  </node>
-                </node>
-              </node>
-              <node concept="3goQfb" id="5FxxG02PsSs" role="2OqNvi">
-                <node concept="1bVj0M" id="5FxxG02PsSt" role="23t8la">
-                  <node concept="3clFbS" id="5FxxG02PsSu" role="1bW5cS">
-                    <node concept="3clFbF" id="5FxxG02PsSv" role="3cqZAp">
-                      <node concept="2OqwBi" id="5FxxG02PsSw" role="3clFbG">
-                        <node concept="2OqwBi" id="5FxxG02PsSx" role="2Oq$k0">
-                          <node concept="37vLTw" id="5FxxG02PsSy" role="2Oq$k0">
-                            <ref role="3cqZAo" node="5FxxG02PsSA" resolve="it" />
-                          </node>
-                          <node concept="2qgKlT" id="5FxxG02PsSz" role="2OqNvi">
-                            <ref role="37wK5l" to="tpek:hEwJjl2" resolve="getMembers" />
-                          </node>
-                        </node>
-                        <node concept="v3k3i" id="5FxxG02PsS$" role="2OqNvi">
-                          <node concept="chp4Y" id="5FxxG02PsS_" role="v3oSu">
-                            <ref role="cht4Q" to="1i04:hP3i0lY" resolve="ConceptMethodDeclaration" />
-                          </node>
-                        </node>
-                      </node>
-                    </node>
-                  </node>
-                  <node concept="gl6BB" id="5FxxG02PsSA" role="1bW2Oz">
-                    <property role="TrG5h" value="it" />
-                    <node concept="2jxLKc" id="5FxxG02PsSB" role="1tU5fm" />
-                  </node>
-                </node>
-              </node>
-            </node>
-          </node>
-        </node>
-        <node concept="3clFbH" id="5FxxG02S1qF" role="3cqZAp" />
-        <node concept="3cpWs8" id="5FxxG02OHO9" role="3cqZAp">
-          <node concept="3cpWsn" id="5FxxG02OHOc" role="3cpWs9">
-            <property role="TrG5h" value="superConceptHasMethod" />
-            <node concept="10P_77" id="5FxxG02OHO7" role="1tU5fm" />
-            <node concept="2OqwBi" id="5FxxG02Px$_" role="33vP2m">
-              <node concept="37vLTw" id="5FxxG02PcNq" role="2Oq$k0">
-                <ref role="3cqZAo" node="5FxxG02PsS8" resolve="superConceptMethods" />
-              </node>
-              <node concept="2HwmR7" id="5FxxG02PyyZ" role="2OqNvi">
-                <node concept="1bVj0M" id="5FxxG02Pyz1" role="23t8la">
-                  <node concept="3clFbS" id="5FxxG02Pyz2" role="1bW5cS">
-                    <node concept="3clFbF" id="5FxxG02PyVR" role="3cqZAp">
-                      <node concept="1Wc70l" id="5FxxG02PDmm" role="3clFbG">
-                        <node concept="2OqwBi" id="5FxxG02PKYX" role="3uHU7w">
-                          <node concept="2OqwBi" id="5FxxG02PId0" role="2Oq$k0">
-                            <node concept="37vLTw" id="5FxxG02PG1Y" role="2Oq$k0">
-                              <ref role="3cqZAo" node="5FxxG02Pyz3" resolve="it" />
-                            </node>
-                            <node concept="3TrcHB" id="5FxxG02PJiL" role="2OqNvi">
-                              <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                            </node>
-                          </node>
-                          <node concept="liA8E" id="5FxxG02PM83" role="2OqNvi">
-                            <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
-                            <node concept="2j1LYi" id="5FxxG02PMxZ" role="37wK5m">
-                              <ref role="2j1LYj" node="5FxxG02Iq6u" resolve="methodName" />
-                            </node>
-                          </node>
-                        </node>
-                        <node concept="2OqwBi" id="5FxxG02P$kO" role="3uHU7B">
-                          <node concept="37vLTw" id="5FxxG02PyVQ" role="2Oq$k0">
-                            <ref role="3cqZAo" node="5FxxG02Pyz3" resolve="it" />
-                          </node>
-                          <node concept="3TrcHB" id="5FxxG02PApT" role="2OqNvi">
-                            <ref role="3TsBF5" to="1i04:hP3i0m0" resolve="isVirtual" />
-                          </node>
-                        </node>
-                      </node>
-                    </node>
-                  </node>
-                  <node concept="gl6BB" id="5FxxG02Pyz3" role="1bW2Oz">
-                    <property role="TrG5h" value="it" />
-                    <node concept="2jxLKc" id="5FxxG02Pyz4" role="1tU5fm" />
-                  </node>
-                </node>
-              </node>
-            </node>
-          </node>
-        </node>
-        <node concept="3cpWs8" id="5FxxG02JVY2" role="3cqZAp">
-          <node concept="3cpWsn" id="5FxxG02JVY3" role="3cpWs9">
-            <property role="TrG5h" value="isSubConcept" />
-            <node concept="10P_77" id="5FxxG02JVVx" role="1tU5fm" />
-            <node concept="2OqwBi" id="5FxxG02JVY4" role="33vP2m">
-              <node concept="2OqwBi" id="5FxxG02JVY5" role="2Oq$k0">
-                <node concept="2OqwBi" id="5FxxG02JVY6" role="2Oq$k0">
-                  <node concept="1JQnki" id="5FxxG02JVY7" role="2Oq$k0" />
-                  <node concept="3TrEf2" id="5FxxG02JVY8" role="2OqNvi">
-                    <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
-                  </node>
-                </node>
-                <node concept="2qgKlT" id="5FxxG02JVY9" role="2OqNvi">
-                  <ref role="37wK5l" to="tpcn:2A8AB0rAWpG" resolve="getAllSuperConcepts" />
-                  <node concept="3clFbT" id="5FxxG02JVYa" role="37wK5m" />
-                </node>
-              </node>
-              <node concept="2HwmR7" id="5FxxG02JVYb" role="2OqNvi">
-                <node concept="1bVj0M" id="5FxxG02JVYc" role="23t8la">
-                  <node concept="3clFbS" id="5FxxG02JVYd" role="1bW5cS">
-                    <node concept="3clFbF" id="5FxxG02JVYe" role="3cqZAp">
-                      <node concept="2OqwBi" id="5FxxG02JVYf" role="3clFbG">
-                        <node concept="2OqwBi" id="5FxxG02JVYg" role="2Oq$k0">
-                          <node concept="37vLTw" id="5FxxG02JVYh" role="2Oq$k0">
-                            <ref role="3cqZAo" node="5FxxG02JVYl" resolve="it" />
-                          </node>
-                          <node concept="3TrcHB" id="5FxxG02JVYi" role="2OqNvi">
-                            <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                          </node>
-                        </node>
-                        <node concept="liA8E" id="5FxxG02JVYj" role="2OqNvi">
-                          <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
-                          <node concept="2j1LYi" id="5FxxG02JVYk" role="37wK5m">
-                            <ref role="2j1LYj" node="5FxxG02Iq75" resolve="parentConceptName" />
-                          </node>
-                        </node>
-                      </node>
-                    </node>
-                  </node>
-                  <node concept="gl6BB" id="5FxxG02JVYl" role="1bW2Oz">
-                    <property role="TrG5h" value="it" />
-                    <node concept="2jxLKc" id="5FxxG02JVYm" role="1tU5fm" />
-                  </node>
-                </node>
-              </node>
-            </node>
-          </node>
-        </node>
-        <node concept="3cpWs8" id="5FxxG02Kht5" role="3cqZAp">
-          <node concept="3cpWsn" id="5FxxG02Kht6" role="3cpWs9">
-            <property role="TrG5h" value="hasImplementedMethod" />
-            <node concept="10P_77" id="5FxxG02Khqo" role="1tU5fm" />
-            <node concept="2OqwBi" id="5FxxG02Kq8v" role="33vP2m">
-              <node concept="2OqwBi" id="5FxxG02Kht8" role="2Oq$k0">
-                <node concept="2OqwBi" id="5FxxG02Kht9" role="2Oq$k0">
-                  <node concept="2OqwBi" id="5FxxG02Khta" role="2Oq$k0">
-                    <node concept="1JQnki" id="5FxxG02Khtb" role="2Oq$k0" />
-                    <node concept="2qgKlT" id="5FxxG02Khtc" role="2OqNvi">
-                      <ref role="37wK5l" to="tpek:hEwJjl2" resolve="getMembers" />
-                    </node>
-                  </node>
-                  <node concept="v3k3i" id="5FxxG02Khtd" role="2OqNvi">
-                    <node concept="chp4Y" id="5FxxG02Khte" role="v3oSu">
-                      <ref role="cht4Q" to="1i04:hP3i0lY" resolve="ConceptMethodDeclaration" />
-                    </node>
-                  </node>
-                </node>
-                <node concept="3zZkjj" id="5FxxG02Khtf" role="2OqNvi">
-                  <node concept="1bVj0M" id="5FxxG02Khtg" role="23t8la">
-                    <node concept="3clFbS" id="5FxxG02Khth" role="1bW5cS">
-                      <node concept="3clFbF" id="5FxxG02Khti" role="3cqZAp">
-                        <node concept="1Wc70l" id="5FxxG02KoMF" role="3clFbG">
-                          <node concept="2OqwBi" id="5FxxG02Ku7W" role="3uHU7w">
-                            <node concept="2OqwBi" id="5FxxG02KsFg" role="2Oq$k0">
-                              <node concept="37vLTw" id="5FxxG02KrI6" role="2Oq$k0">
-                                <ref role="3cqZAo" node="5FxxG02Khtp" resolve="it" />
-                              </node>
-                              <node concept="3TrEf2" id="5FxxG02KtJK" role="2OqNvi">
-                                <ref role="3Tt5mk" to="1i04:hP3i0lZ" resolve="overriddenMethod" />
-                              </node>
-                            </node>
-                            <node concept="3x8VRR" id="5FxxG02Kv7h" role="2OqNvi" />
-                          </node>
-                          <node concept="2OqwBi" id="5FxxG02Khtj" role="3uHU7B">
-                            <node concept="2OqwBi" id="5FxxG02Khtk" role="2Oq$k0">
-                              <node concept="37vLTw" id="5FxxG02Khtl" role="2Oq$k0">
-                                <ref role="3cqZAo" node="5FxxG02Khtp" resolve="it" />
-                              </node>
-                              <node concept="3TrcHB" id="5FxxG02Khtm" role="2OqNvi">
-                                <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                              </node>
-                            </node>
-                            <node concept="liA8E" id="5FxxG02Khtn" role="2OqNvi">
-                              <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
-                              <node concept="2j1LYi" id="5FxxG02Khto" role="37wK5m">
-                                <ref role="2j1LYj" node="5FxxG02Iq6u" resolve="methodName" />
-                              </node>
-                            </node>
-                          </node>
-                        </node>
-                      </node>
-                    </node>
-                    <node concept="gl6BB" id="5FxxG02Khtp" role="1bW2Oz">
-                      <property role="TrG5h" value="it" />
-                      <node concept="2jxLKc" id="5FxxG02Khtq" role="1tU5fm" />
-                    </node>
-                  </node>
-                </node>
-              </node>
-              <node concept="3GX2aA" id="5FxxG02OH2y" role="2OqNvi" />
-            </node>
-          </node>
-        </node>
-        <node concept="3clFbH" id="5FxxG02OHzh" role="3cqZAp" />
-        <node concept="3clFbJ" id="5FxxG02IDdf" role="3cqZAp">
-          <node concept="3clFbS" id="5FxxG02IDdh" role="3clFbx">
-            <node concept="3cpWs8" id="5FxxG02Kvzq" role="3cqZAp">
-              <node concept="3cpWsn" id="5FxxG02Kvzt" role="3cpWs9">
-                <property role="TrG5h" value="msg" />
-                <node concept="17QB3L" id="5FxxG02Kvzo" role="1tU5fm" />
-                <node concept="3cpWs3" id="5FxxG02KFip" role="33vP2m">
-                  <node concept="Xl_RD" id="5FxxG02KFvn" role="3uHU7w">
-                    <property role="Xl_RC" value="." />
-                  </node>
-                  <node concept="3cpWs3" id="5FxxG02KDYj" role="3uHU7B">
-                    <node concept="3cpWs3" id="5FxxG02KC2Z" role="3uHU7B">
-                      <node concept="3cpWs3" id="5FxxG02KAPM" role="3uHU7B">
-                        <node concept="3cpWs3" id="5FxxG02K$c$" role="3uHU7B">
-                          <node concept="3cpWs3" id="5FxxG02KxYF" role="3uHU7B">
-                            <node concept="Xl_RD" id="5FxxG02Kw7c" role="3uHU7B">
-                              <property role="Xl_RC" value="It is mandatory to implement method '" />
-                            </node>
-                            <node concept="2j1LYi" id="5FxxG02KyNf" role="3uHU7w">
-                              <ref role="2j1LYj" node="5FxxG02Iq6u" resolve="methodName" />
-                            </node>
-                          </node>
-                          <node concept="Xl_RD" id="5FxxG02K$oM" role="3uHU7w">
-                            <property role="Xl_RC" value="' of concept " />
-                          </node>
-                        </node>
-                        <node concept="2j1LYi" id="5FxxG02KBQh" role="3uHU7w">
-                          <ref role="2j1LYj" node="5FxxG02Iq75" resolve="parentConceptName" />
-                        </node>
-                      </node>
-                      <node concept="Xl_RD" id="5FxxG02KCfx" role="3uHU7w">
-                        <property role="Xl_RC" value=" in subConcept " />
-                      </node>
-                    </node>
-                    <node concept="2OqwBi" id="5FxxG02KEvQ" role="3uHU7w">
-                      <node concept="1JQnki" id="5FxxG02KEaZ" role="2Oq$k0" />
-                      <node concept="3TrEf2" id="5FxxG02KEV7" role="2OqNvi">
-                        <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
-                      </node>
-                    </node>
-                  </node>
-                </node>
-              </node>
-            </node>
-            <node concept="3clFbF" id="5FxxG02KG6l" role="3cqZAp">
-              <node concept="2OqwBi" id="5FxxG02KHKG" role="3clFbG">
-                <node concept="37vLTw" id="5FxxG02KG6j" role="2Oq$k0">
-                  <ref role="3cqZAo" node="5FxxG02Itse" resolve="res" />
-                </node>
-                <node concept="TSZUe" id="5FxxG02KKCx" role="2OqNvi">
-                  <node concept="2ShNRf" id="5FxxG02KLbR" role="25WWJ7">
-                    <node concept="1pGfFk" id="5FxxG02KOi3" role="2ShVmc">
-                      <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
-                      <node concept="37vLTw" id="5FxxG02KOMJ" role="37wK5m">
-                        <ref role="3cqZAo" node="5FxxG02Kvzt" resolve="msg" />
-                      </node>
-                      <node concept="1JQnki" id="5FxxG02KPzd" role="37wK5m" />
-                    </node>
-                  </node>
-                </node>
-              </node>
-            </node>
-          </node>
-          <node concept="1Wc70l" id="5FxxG02JYiy" role="3clFbw">
-            <node concept="3fqX7Q" id="5FxxG02OHj3" role="3uHU7w">
-              <node concept="37vLTw" id="5FxxG02OHj5" role="3fr31v">
-                <ref role="3cqZAo" node="5FxxG02Kht6" resolve="hasImplementedMethod" />
-              </node>
-            </node>
-            <node concept="1Wc70l" id="5FxxG02PcbM" role="3uHU7B">
-              <node concept="37vLTw" id="5FxxG02Pcvt" role="3uHU7B">
-                <ref role="3cqZAo" node="5FxxG02OHOc" resolve="superConceptHasMethod" />
-              </node>
-              <node concept="37vLTw" id="5FxxG02JVYn" role="3uHU7w">
-                <ref role="3cqZAo" node="5FxxG02JVY3" resolve="isSubConcept" />
-              </node>
-            </node>
-          </node>
-        </node>
-        <node concept="3clFbH" id="5FxxG02ID88" role="3cqZAp" />
-        <node concept="3cpWs6" id="5FxxG02ItRd" role="3cqZAp">
-          <node concept="37vLTw" id="5FxxG02Iu7W" role="3cqZAk">
-            <ref role="3cqZAo" node="5FxxG02Itse" resolve="res" />
-          </node>
-        </node>
-      </node>
-    </node>
-    <node concept="2j1K4_" id="5FxxG02Iq6u" role="2j1K4A">
+    <property role="3miQiw" value="true" />
+    <node concept="2j1K4_" id="3cj_LrgPwgC" role="2j1K4A">
       <property role="TrG5h" value="methodName" />
-      <node concept="17QB3L" id="5FxxG02Iq6C" role="2j1LY4" />
+      <node concept="17QB3L" id="3cj_LrgPwgD" role="2j1LY4" />
     </node>
-    <node concept="2j1K4_" id="5FxxG02Iq75" role="2j1K4A">
+    <node concept="2j1K4_" id="3cj_LrgPwgE" role="2j1K4A">
       <property role="TrG5h" value="parentConceptName" />
-      <node concept="17QB3L" id="5FxxG02Jmoc" role="2j1LY4" />
+      <node concept="17QB3L" id="3cj_LrgPwgF" role="2j1LY4" />
+    </node>
+    <node concept="2j1K4_" id="3cj_LrgP$aX" role="2j1K4A">
+      <property role="TrG5h" value="languageName" />
+      <node concept="17QB3L" id="3cj_LrgP$A9" role="2j1LY4" />
     </node>
-    <node concept="2j1LYv" id="5FxxG02Itkk" role="2j1YRv">
-      <node concept="2j1LYi" id="5FxxG02Itkl" role="2j1YQj">
-        <ref role="2j1LYj" node="5FxxG02Iq6u" resolve="methodName" />
+    <node concept="2j1LYv" id="3cj_LrgPwgG" role="2j1YRv">
+      <node concept="2j1LYi" id="3cj_LrgPwgH" role="2j1YQj">
+        <ref role="2j1LYj" node="3cj_LrgPwgC" resolve="methodName" />
+      </node>
+      <node concept="Xl_RD" id="3cj_LrgPwgI" role="2j1LYg">
+        <property role="Xl_RC" value="getPresentation" />
       </node>
-      <node concept="Xl_RD" id="5FxxG02M$Wx" role="2j1LYg" />
     </node>
-    <node concept="2j1LYv" id="5FxxG02ItkT" role="2j1YRv">
-      <node concept="2j1LYi" id="5FxxG02ItkU" role="2j1YQj">
-        <ref role="2j1LYj" node="5FxxG02Iq75" resolve="parentConceptName" />
+    <node concept="2j1LYv" id="3cj_LrgPwgJ" role="2j1YRv">
+      <node concept="2j1LYi" id="3cj_LrgPwgK" role="2j1YQj">
+        <ref role="2j1LYj" node="3cj_LrgPwgE" resolve="parentConceptName" />
       </node>
-      <node concept="Xl_RD" id="5FxxG02JmAe" role="2j1LYg">
+      <node concept="Xl_RD" id="3cj_LrgPwgL" role="2j1LYg">
         <property role="Xl_RC" value="BaseConcept" />
       </node>
     </node>
-    <node concept="1Pa9Pv" id="5FxxG02Itn9" role="1MIJl8">
-      <node concept="1PaTwC" id="5FxxG02Itna" role="1PaQFQ">
-        <node concept="3oM_SD" id="5FxxG02Itnu" role="1PaTwD">
+    <node concept="2j1LYv" id="3cj_LrgP_Lh" role="2j1YRv">
+      <node concept="2j1LYi" id="3cj_LrgP_Li" role="2j1YQj">
+        <ref role="2j1LYj" node="3cj_LrgP$aX" resolve="languageName" />
+      </node>
+      <node concept="Xl_RD" id="3cj_LrgPAAx" role="2j1LYg">
+        <property role="Xl_RC" value="" />
+      </node>
+    </node>
+    <node concept="1Pa9Pv" id="3cj_LrgPwgM" role="1MIJl8">
+      <node concept="1PaTwC" id="3cj_LrgPwgN" role="1PaQFQ">
+        <node concept="3oM_SD" id="3cj_LrgVU8W" role="1PaTwD">
           <property role="3oM_SC" value="Determines" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItnD" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="5FxxG02Ito8" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwgQ" role="1PaTwD">
           <property role="3oM_SC" value="whether" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Ito9" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwgR" role="1PaTwD">
           <property role="3oM_SC" value="a" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itoa" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwgS" role="1PaTwD">
           <property role="3oM_SC" value="particular" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itob" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwgT" role="1PaTwD">
           <property role="3oM_SC" value="virtual" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itoc" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwgU" role="1PaTwD">
           <property role="3oM_SC" value="method," />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itod" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwgV" role="1PaTwD">
           <property role="3oM_SC" value="specified" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itoe" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwgW" role="1PaTwD">
           <property role="3oM_SC" value="by" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itor" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwgX" role="1PaTwD">
           <property role="3oM_SC" value="its" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itos" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwgY" role="1PaTwD">
           <property role="3oM_SC" value="name," />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itoh" role="1PaTwD">
-          <property role="3oM_SC" value="defined" />
-        </node>
-        <node concept="3oM_SD" id="5FxxG02Itoi" role="1PaTwD">
-          <property role="3oM_SC" value="in" />
+        <node concept="3oM_SD" id="3cj_LrgVU8X" role="1PaTwD">
+          <property role="3oM_SC" value="concept" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itoj" role="1PaTwD">
-          <property role="3oM_SC" value="a" />
+        <node concept="3oM_SD" id="3cj_LrgVU8Y" role="1PaTwD">
+          <property role="3oM_SC" value="and" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itok" role="1PaTwD">
-          <property role="3oM_SC" value="given" />
+        <node concept="3oM_SD" id="3cj_LrgVU8Z" role="1PaTwD">
+          <property role="3oM_SC" value="language," />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itol" role="1PaTwD">
-          <property role="3oM_SC" value="concept" />
-        </node>
-        <node concept="3oM_SD" id="5FxxG02Itom" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgVU94" role="1PaTwD">
           <property role="3oM_SC" value="is" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Iton" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwh5" role="1PaTwD">
           <property role="3oM_SC" value="overridden" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itoo" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwh6" role="1PaTwD">
           <property role="3oM_SC" value="in" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itop" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwh7" role="1PaTwD">
           <property role="3oM_SC" value="all" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itoq" role="1PaTwD">
-          <property role="3oM_SC" value="subConcepts." />
+        <node concept="3oM_SD" id="3cj_LrgPwh8" role="1PaTwD">
+          <property role="3oM_SC" value="subConcepts" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgVU95" role="1PaTwD">
+          <property role="3oM_SC" value="or" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgVU96" role="1PaTwD">
+          <property role="3oM_SC" value="any" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgVU97" role="1PaTwD">
+          <property role="3oM_SC" value="of" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgVU9a" role="1PaTwD">
+          <property role="3oM_SC" value="their" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgVU9b" role="1PaTwD">
+          <property role="3oM_SC" value="parents." />
         </node>
       </node>
-      <node concept="1PaTwC" id="5FxxG02Itou" role="1PaQFQ">
-        <node concept="3oM_SD" id="5FxxG02Itot" role="1PaTwD">
+      <node concept="1PaTwC" id="3cj_LrgPwh9" role="1PaQFQ">
+        <node concept="3oM_SD" id="3cj_LrgPwha" role="1PaTwD">
           <property role="3oM_SC" value="" />
         </node>
       </node>
-      <node concept="1PaTwC" id="5FxxG02Itpc" role="1PaQFQ">
-        <node concept="3oM_SD" id="5FxxG02Itpb" role="1PaTwD">
+      <node concept="1PaTwC" id="3cj_LrgPwhb" role="1PaQFQ">
+        <node concept="3oM_SD" id="3cj_LrgPwhc" role="1PaTwD">
           <property role="3oM_SC" value="Parameters:" />
+          <property role="1X82VF" value="true" />
         </node>
       </node>
-      <node concept="1PaTwC" id="5FxxG02Itpi" role="1PaQFQ">
-        <node concept="3oM_SD" id="5FxxG02Itph" role="1PaTwD">
-          <property role="3oM_SC" value="----------" />
+      <node concept="1PaTwC" id="3cj_LrgPwhd" role="1PaQFQ">
+        <node concept="3oM_SD" id="3cj_LrgRnHw" role="1PaTwD">
+          <property role="3oM_SC" value="languageName" />
         </node>
-      </node>
-      <node concept="1PaTwC" id="5FxxG02Itpo" role="1PaQFQ">
-        <node concept="3oM_SD" id="5FxxG02Itpu" role="1PaTwD">
-          <property role="3oM_SC" value="" />
+        <node concept="3oM_SD" id="3cj_LrgYfet" role="1PaTwD">
+          <property role="3oM_SC" value="-" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itpv" role="1PaTwD">
-          <property role="3oM_SC" value="" />
+        <node concept="3oM_SD" id="3cj_LrgYfe6" role="1PaTwD">
+          <property role="3oM_SC" value="substring" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itpw" role="1PaTwD">
-          <property role="3oM_SC" value="" />
+        <node concept="3oM_SD" id="3cj_LrgRnHz" role="1PaTwD">
+          <property role="3oM_SC" value="of" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itpx" role="1PaTwD">
-          <property role="3oM_SC" value="" />
+        <node concept="3oM_SD" id="3cj_LrgRnH$" role="1PaTwD">
+          <property role="3oM_SC" value="the" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itpy" role="1PaTwD">
-          <property role="3oM_SC" value="methodName:" />
+        <node concept="3oM_SD" id="3cj_LrgRnH_" role="1PaTwD">
+          <property role="3oM_SC" value="module" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itpz" role="1PaTwD">
-          <property role="3oM_SC" value="string" />
+        <node concept="3oM_SD" id="3cj_LrgRnHA" role="1PaTwD">
+          <property role="3oM_SC" value="name" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgRnHB" role="1PaTwD">
+          <property role="3oM_SC" value="where" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgRnHC" role="1PaTwD">
+          <property role="3oM_SC" value="the" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgRnHD" role="1PaTwD">
+          <property role="3oM_SC" value="root" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgRnHE" role="1PaTwD">
+          <property role="3oM_SC" value="nodes" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgRnHF" role="1PaTwD">
+          <property role="3oM_SC" value="will" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgRnHG" role="1PaTwD">
+          <property role="3oM_SC" value="be" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgRnHH" role="1PaTwD">
+          <property role="3oM_SC" value="tested" />
         </node>
       </node>
-      <node concept="1PaTwC" id="5FxxG02Itp_" role="1PaQFQ">
-        <node concept="3oM_SD" id="5FxxG02Itp$" role="1PaTwD">
+      <node concept="1PaTwC" id="3cj_LrgRnHJ" role="1PaQFQ">
+        <node concept="3oM_SD" id="3cj_LrgRnHK" role="1PaTwD">
           <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItpO" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgRnHL" role="1PaTwD">
           <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItpP" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgRnHM" role="1PaTwD">
           <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItpQ" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgRnHN" role="1PaTwD">
           <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItpR" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgRnHO" role="1PaTwD">
           <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItpS" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgRnHP" role="1PaTwD">
           <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItpT" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgRnHQ" role="1PaTwD">
           <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItpU" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgRnHR" role="1PaTwD">
           <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItpV" role="1PaTwD">
-          <property role="3oM_SC" value="The" />
-        </node>
-        <node concept="3oM_SD" id="5FxxG02ItpW" role="1PaTwD">
-          <property role="3oM_SC" value="name" />
-        </node>
-        <node concept="3oM_SD" id="5FxxG02ItpX" role="1PaTwD">
-          <property role="3oM_SC" value="of" />
-        </node>
-        <node concept="3oM_SD" id="5FxxG02ItpY" role="1PaTwD">
-          <property role="3oM_SC" value="the" />
-        </node>
-        <node concept="3oM_SD" id="5FxxG02Itq1" role="1PaTwD">
-          <property role="3oM_SC" value="method" />
+        <node concept="3oM_SD" id="3cj_LrgRnHS" role="1PaTwD">
+          <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itq2" role="1PaTwD">
-          <property role="3oM_SC" value="to" />
+        <node concept="3oM_SD" id="3cj_LrgRnHT" role="1PaTwD">
+          <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itq3" role="1PaTwD">
-          <property role="3oM_SC" value="check" />
+        <node concept="3oM_SD" id="3cj_LrgRnHU" role="1PaTwD">
+          <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itq4" role="1PaTwD">
-          <property role="3oM_SC" value="for" />
+        <node concept="3oM_SD" id="3cj_LrgRnHV" role="1PaTwD">
+          <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itq5" role="1PaTwD">
-          <property role="3oM_SC" value="overrides." />
+        <node concept="3oM_SD" id="3cj_LrgRnHW" role="1PaTwD">
+          <property role="3oM_SC" value="" />
         </node>
-      </node>
-      <node concept="1PaTwC" id="5FxxG02Itq7" role="1PaQFQ">
-        <node concept="3oM_SD" id="5FxxG02Itq6" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgRnHX" role="1PaTwD">
           <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItqG" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgRnHY" role="1PaTwD">
           <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItqH" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgRnHZ" role="1PaTwD">
           <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItqI" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgRnI0" role="1PaTwD">
           <property role="3oM_SC" value="" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItqJ" role="1PaTwD">
-          <property role="3oM_SC" value="parentConcept:" />
+        <node concept="3oM_SD" id="3cj_LrgRnI1" role="1PaTwD">
+          <property role="3oM_SC" value="if" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgRnI2" role="1PaTwD">
+          <property role="3oM_SC" value="the" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02ItqK" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgRnI3" role="1PaTwD">
           <property role="3oM_SC" value="string" />
         </node>
-      </node>
-      <node concept="1PaTwC" id="5FxxG02ItqM" role="1PaQFQ">
-        <node concept="3oM_SD" id="5FxxG02ItqL" role="1PaTwD">
-          <property role="3oM_SC" value="" />
+        <node concept="3oM_SD" id="3cj_LrgRnI4" role="1PaTwD">
+          <property role="3oM_SC" value="is" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itr1" role="1PaTwD">
-          <property role="3oM_SC" value="" />
+        <node concept="3oM_SD" id="3cj_LrgRnI5" role="1PaTwD">
+          <property role="3oM_SC" value="empty" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itr2" role="1PaTwD">
-          <property role="3oM_SC" value="" />
+        <node concept="3oM_SD" id="3cj_LrgRnI6" role="1PaTwD">
+          <property role="3oM_SC" value="(&quot;&quot;)," />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itr3" role="1PaTwD">
-          <property role="3oM_SC" value="" />
+        <node concept="3oM_SD" id="3cj_LrgRnI7" role="1PaTwD">
+          <property role="3oM_SC" value="all" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itr4" role="1PaTwD">
-          <property role="3oM_SC" value="" />
+        <node concept="3oM_SD" id="3cj_LrgRnI8" role="1PaTwD">
+          <property role="3oM_SC" value="languages" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itr5" role="1PaTwD">
-          <property role="3oM_SC" value="" />
+        <node concept="3oM_SD" id="3cj_LrgRnI9" role="1PaTwD">
+          <property role="3oM_SC" value="will" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itr6" role="1PaTwD">
-          <property role="3oM_SC" value="" />
+        <node concept="3oM_SD" id="3cj_LrgRnIa" role="1PaTwD">
+          <property role="3oM_SC" value="be" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itr7" role="1PaTwD">
-          <property role="3oM_SC" value="" />
+        <node concept="3oM_SD" id="3cj_LrgYfe3" role="1PaTwD">
+          <property role="3oM_SC" value="considered." />
+        </node>
+      </node>
+      <node concept="1PaTwC" id="3cj_LrgPwhC" role="1PaQFQ">
+        <node concept="3oM_SD" id="3cj_LrgRnIC" role="1PaTwD">
+          <property role="3oM_SC" value="parentConcept" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02RZgI" role="1PaTwD">
-          <property role="3oM_SC" value="The" />
+        <node concept="3oM_SD" id="3cj_LrgRnID" role="1PaTwD">
+          <property role="3oM_SC" value="-" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02RZgJ" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgRnIE" role="1PaTwD">
           <property role="3oM_SC" value="name" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Its6" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwhU" role="1PaTwD">
           <property role="3oM_SC" value="of" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Its7" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwhV" role="1PaTwD">
           <property role="3oM_SC" value="specific" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Its8" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwhW" role="1PaTwD">
           <property role="3oM_SC" value="concept" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itrf" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwhX" role="1PaTwD">
           <property role="3oM_SC" value="in" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itrg" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwhY" role="1PaTwD">
           <property role="3oM_SC" value="which" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itrh" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwhZ" role="1PaTwD">
           <property role="3oM_SC" value="the" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itri" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwi0" role="1PaTwD">
           <property role="3oM_SC" value="virtual" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itrj" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwi1" role="1PaTwD">
           <property role="3oM_SC" value="method" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itrk" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwi2" role="1PaTwD">
           <property role="3oM_SC" value="is" />
         </node>
-        <node concept="3oM_SD" id="5FxxG02Itrl" role="1PaTwD">
+        <node concept="3oM_SD" id="3cj_LrgPwi3" role="1PaTwD">
           <property role="3oM_SC" value="defined." />
         </node>
       </node>
+      <node concept="1PaTwC" id="3cj_LrgYfcS" role="1PaQFQ">
+        <node concept="3oM_SD" id="3cj_LrgYfcR" role="1PaTwD">
+          <property role="3oM_SC" value="methodName" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgYfem" role="1PaTwD">
+          <property role="3oM_SC" value="-" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgYfes" role="1PaTwD">
+          <property role="3oM_SC" value="name" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgYfdn" role="1PaTwD">
+          <property role="3oM_SC" value="of" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgYfdo" role="1PaTwD">
+          <property role="3oM_SC" value="the" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgYfdp" role="1PaTwD">
+          <property role="3oM_SC" value="method" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgYfdq" role="1PaTwD">
+          <property role="3oM_SC" value="to" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgYfdt" role="1PaTwD">
+          <property role="3oM_SC" value="check" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgYfdu" role="1PaTwD">
+          <property role="3oM_SC" value="for" />
+        </node>
+        <node concept="3oM_SD" id="3cj_LrgYfdv" role="1PaTwD">
+          <property role="3oM_SC" value="overrides." />
+        </node>
+      </node>
+    </node>
+    <node concept="1MIXq2" id="3cj_LrgPB0M" role="14J5yK">
+      <node concept="3clFbS" id="3cj_LrgPB0N" role="2VODD2">
+        <node concept="3cpWs8" id="3cj_LrgPDex" role="3cqZAp">
+          <node concept="3cpWsn" id="3cj_LrgPDey" role="3cpWs9">
+            <property role="TrG5h" value="res" />
+            <node concept="_YKpA" id="3cj_LrgPDez" role="1tU5fm">
+              <node concept="3uibUv" id="3cj_LrgPDe$" role="_ZDj9">
+                <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                <node concept="17QB3L" id="3cj_LrgPDe_" role="11_B2D" />
+                <node concept="3Tqbb2" id="3cj_LrgPDeA" role="11_B2D" />
+              </node>
+            </node>
+            <node concept="2ShNRf" id="3cj_LrgPDeB" role="33vP2m">
+              <node concept="Tc6Ow" id="3cj_LrgPDeC" role="2ShVmc">
+                <node concept="3uibUv" id="3cj_LrgPDeD" role="HW$YZ">
+                  <ref role="3uigEE" to="zn9m:~Pair" resolve="Pair" />
+                  <node concept="17QB3L" id="3cj_LrgPDeE" role="11_B2D" />
+                  <node concept="3Tqbb2" id="3cj_LrgPDeF" role="11_B2D" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="3cj_LrgPDiJ" role="3cqZAp" />
+        <node concept="3cpWs8" id="3cj_LrgQbQe" role="3cqZAp">
+          <node concept="3cpWsn" id="3cj_LrgQbQf" role="3cpWs9">
+            <property role="TrG5h" value="parentConceptBehaviors" />
+            <node concept="A3Dl8" id="3cj_LrgQbBt" role="1tU5fm">
+              <node concept="3Tqbb2" id="3cj_LrgQbBw" role="A3Ik2">
+                <ref role="ehGHo" to="1i04:hP3h7Gq" resolve="ConceptBehavior" />
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3cpWs8" id="3cj_LrgSJ2J" role="3cqZAp">
+          <node concept="3cpWsn" id="3cj_LrgSJ2K" role="3cpWs9">
+            <property role="TrG5h" value="methodsToBeOverriden" />
+            <node concept="A3Dl8" id="3cj_LrgSIUZ" role="1tU5fm">
+              <node concept="3Tqbb2" id="3cj_LrgSIV2" role="A3Ik2">
+                <ref role="ehGHo" to="1i04:hP3i0lY" resolve="ConceptMethodDeclaration" />
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="3cj_LrgQ$Ji" role="3cqZAp" />
+        <node concept="L3pyB" id="2TekImn84bD" role="3cqZAp">
+          <property role="1Fhty8" value="true" />
+          <node concept="3clFbS" id="2TekImn84bE" role="L3pyw">
+            <node concept="3clFbF" id="3cj_LrgRWn4" role="3cqZAp">
+              <node concept="37vLTI" id="3cj_LrgRWn6" role="3clFbG">
+                <node concept="2OqwBi" id="3cj_LrgQbQg" role="37vLTx">
+                  <node concept="qVDSY" id="3cj_LrgQbQh" role="2Oq$k0">
+                    <node concept="chp4Y" id="3cj_LrgQbQi" role="qVDSX">
+                      <ref role="cht4Q" to="1i04:hP3h7Gq" resolve="ConceptBehavior" />
+                    </node>
+                  </node>
+                  <node concept="3zZkjj" id="3cj_LrgQbQj" role="2OqNvi">
+                    <node concept="1bVj0M" id="3cj_LrgQbQk" role="23t8la">
+                      <node concept="3clFbS" id="3cj_LrgQbQl" role="1bW5cS">
+                        <node concept="3clFbF" id="3cj_LrgQbQm" role="3cqZAp">
+                          <node concept="17R0WA" id="3cj_LrgQbQn" role="3clFbG">
+                            <node concept="2j1LYi" id="3cj_LrgQbQo" role="3uHU7w">
+                              <ref role="2j1LYj" node="3cj_LrgPwgE" resolve="parentConceptName" />
+                            </node>
+                            <node concept="2OqwBi" id="3cj_LrgQbQp" role="3uHU7B">
+                              <node concept="2OqwBi" id="3cj_LrgQkb6" role="2Oq$k0">
+                                <node concept="37vLTw" id="3cj_LrgQbQq" role="2Oq$k0">
+                                  <ref role="3cqZAo" node="3cj_LrgQbQs" resolve="it" />
+                                </node>
+                                <node concept="3TrEf2" id="3cj_LrgQkUW" role="2OqNvi">
+                                  <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
+                                </node>
+                              </node>
+                              <node concept="3TrcHB" id="3cj_LrgQbQr" role="2OqNvi">
+                                <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
+                              </node>
+                            </node>
+                          </node>
+                        </node>
+                      </node>
+                      <node concept="gl6BB" id="3cj_LrgQbQs" role="1bW2Oz">
+                        <property role="TrG5h" value="it" />
+                        <node concept="2jxLKc" id="3cj_LrgQbQt" role="1tU5fm" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+                <node concept="37vLTw" id="3cj_LrgRWna" role="37vLTJ">
+                  <ref role="3cqZAo" node="3cj_LrgQbQf" resolve="parentConceptBehaviors" />
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbH" id="3cj_LrgRUDy" role="3cqZAp" />
+            <node concept="3clFbJ" id="3cj_LrgS9yD" role="3cqZAp">
+              <node concept="3clFbS" id="3cj_LrgS9yF" role="3clFbx">
+                <node concept="3clFbF" id="3cj_LrgSbPz" role="3cqZAp">
+                  <node concept="37vLTI" id="3cj_LrgSeab" role="3clFbG">
+                    <node concept="2OqwBi" id="3cj_LrgSeg5" role="37vLTx">
+                      <node concept="37vLTw" id="3cj_LrgSecR" role="2Oq$k0">
+                        <ref role="3cqZAo" node="3cj_LrgQbQf" resolve="parentConceptBehaviors" />
+                      </node>
+                      <node concept="3zZkjj" id="3cj_LrgSfoe" role="2OqNvi">
+                        <node concept="1bVj0M" id="3cj_LrgSfog" role="23t8la">
+                          <node concept="3clFbS" id="3cj_LrgSfoh" role="1bW5cS">
+                            <node concept="3clFbF" id="3cj_LrgSftb" role="3cqZAp">
+                              <node concept="2OqwBi" id="3cj_LrgSi_Y" role="3clFbG">
+                                <node concept="2OqwBi" id="3cj_LrgSgZm" role="2Oq$k0">
+                                  <node concept="2OqwBi" id="3cj_LrgSg_j" role="2Oq$k0">
+                                    <node concept="2OqwBi" id="3cj_LrgSfGo" role="2Oq$k0">
+                                      <node concept="37vLTw" id="3cj_LrgSfta" role="2Oq$k0">
+                                        <ref role="3cqZAo" node="3cj_LrgSfoi" resolve="it" />
+                                      </node>
+                                      <node concept="I4A8Y" id="3cj_LrgSglZ" role="2OqNvi" />
+                                    </node>
+                                    <node concept="13u695" id="3cj_LrgSgKo" role="2OqNvi" />
+                                  </node>
+                                  <node concept="3TrcHB" id="3cj_LrgShe9" role="2OqNvi">
+                                    <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
+                                  </node>
+                                </node>
+                                <node concept="liA8E" id="3cj_LrgSjjO" role="2OqNvi">
+                                  <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
+                                  <node concept="2j1LYi" id="3cj_LrgSjpj" role="37wK5m">
+                                    <ref role="2j1LYj" node="3cj_LrgP$aX" resolve="languageName" />
+                                  </node>
+                                </node>
+                              </node>
+                            </node>
+                          </node>
+                          <node concept="gl6BB" id="3cj_LrgSfoi" role="1bW2Oz">
+                            <property role="TrG5h" value="it" />
+                            <node concept="2jxLKc" id="3cj_LrgSfoj" role="1tU5fm" />
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                    <node concept="37vLTw" id="3cj_LrgSbPx" role="37vLTJ">
+                      <ref role="3cqZAo" node="3cj_LrgQbQf" resolve="parentConceptBehaviors" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="2OqwBi" id="3cj_LrgSb7q" role="3clFbw">
+                <node concept="2j1LYi" id="3cj_LrgSa74" role="2Oq$k0">
+                  <ref role="2j1LYj" node="3cj_LrgP$aX" resolve="languageName" />
+                </node>
+                <node concept="17RvpY" id="3cj_LrgSbNI" role="2OqNvi" />
+              </node>
+            </node>
+            <node concept="3clFbH" id="3cj_LrgR_YG" role="3cqZAp" />
+            <node concept="3clFbF" id="3cj_LrgSMiK" role="3cqZAp">
+              <node concept="37vLTI" id="3cj_LrgSMiM" role="3clFbG">
+                <node concept="2OqwBi" id="3cj_LrgSJ2L" role="37vLTx">
+                  <node concept="37vLTw" id="3cj_LrgSJ2M" role="2Oq$k0">
+                    <ref role="3cqZAo" node="3cj_LrgQbQf" resolve="parentConceptBehaviors" />
+                  </node>
+                  <node concept="3goQfb" id="3cj_LrgSJ2N" role="2OqNvi">
+                    <node concept="1bVj0M" id="3cj_LrgSJ2O" role="23t8la">
+                      <node concept="3clFbS" id="3cj_LrgSJ2P" role="1bW5cS">
+                        <node concept="3clFbF" id="3cj_LrgSJ2Q" role="3cqZAp">
+                          <node concept="2OqwBi" id="3cj_LrgSJ2R" role="3clFbG">
+                            <node concept="2OqwBi" id="3cj_LrgSJ2S" role="2Oq$k0">
+                              <node concept="2OqwBi" id="3cj_LrgSJ2T" role="2Oq$k0">
+                                <node concept="37vLTw" id="3cj_LrgSJ2U" role="2Oq$k0">
+                                  <ref role="3cqZAo" node="3cj_LrgSJ3a" resolve="conceptBehavior" />
+                                </node>
+                                <node concept="2qgKlT" id="3cj_LrgSJ2V" role="2OqNvi">
+                                  <ref role="37wK5l" to="tpek:hEwJjl2" resolve="getMembers" />
+                                </node>
+                              </node>
+                              <node concept="v3k3i" id="3cj_LrgSJ2W" role="2OqNvi">
+                                <node concept="chp4Y" id="3cj_LrgSJ2X" role="v3oSu">
+                                  <ref role="cht4Q" to="1i04:hP3i0lY" resolve="ConceptMethodDeclaration" />
+                                </node>
+                              </node>
+                            </node>
+                            <node concept="3zZkjj" id="3cj_LrgSJ2Y" role="2OqNvi">
+                              <node concept="1bVj0M" id="3cj_LrgSJ2Z" role="23t8la">
+                                <node concept="3clFbS" id="3cj_LrgSJ30" role="1bW5cS">
+                                  <node concept="3clFbF" id="3cj_LrgSJ31" role="3cqZAp">
+                                    <node concept="1Wc70l" id="3cj_LrgW0AH" role="3clFbG">
+                                      <node concept="2OqwBi" id="3cj_LrgW1iA" role="3uHU7w">
+                                        <node concept="37vLTw" id="3cj_LrgW0OD" role="2Oq$k0">
+                                          <ref role="3cqZAo" node="3cj_LrgSJ38" resolve="method" />
+                                        </node>
+                                        <node concept="3TrcHB" id="3cj_LrgW2tJ" role="2OqNvi">
+                                          <ref role="3TsBF5" to="1i04:hP3i0m0" resolve="isVirtual" />
+                                        </node>
+                                      </node>
+                                      <node concept="2OqwBi" id="3cj_LrgSJ32" role="3uHU7B">
+                                        <node concept="2OqwBi" id="3cj_LrgSJ33" role="2Oq$k0">
+                                          <node concept="37vLTw" id="3cj_LrgSJ34" role="2Oq$k0">
+                                            <ref role="3cqZAo" node="3cj_LrgSJ38" resolve="method" />
+                                          </node>
+                                          <node concept="3TrcHB" id="3cj_LrgSJ35" role="2OqNvi">
+                                            <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
+                                          </node>
+                                        </node>
+                                        <node concept="liA8E" id="3cj_LrgSJ36" role="2OqNvi">
+                                          <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
+                                          <node concept="2j1LYi" id="3cj_LrgSJ37" role="37wK5m">
+                                            <ref role="2j1LYj" node="3cj_LrgPwgC" resolve="methodName" />
+                                          </node>
+                                        </node>
+                                      </node>
+                                    </node>
+                                  </node>
+                                </node>
+                                <node concept="gl6BB" id="3cj_LrgSJ38" role="1bW2Oz">
+                                  <property role="TrG5h" value="method" />
+                                  <node concept="2jxLKc" id="3cj_LrgSJ39" role="1tU5fm" />
+                                </node>
+                              </node>
+                            </node>
+                          </node>
+                        </node>
+                      </node>
+                      <node concept="gl6BB" id="3cj_LrgSJ3a" role="1bW2Oz">
+                        <property role="TrG5h" value="conceptBehavior" />
+                        <node concept="2jxLKc" id="3cj_LrgSJ3b" role="1tU5fm" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+                <node concept="37vLTw" id="3cj_LrgSMiQ" role="37vLTJ">
+                  <ref role="3cqZAo" node="3cj_LrgSJ2K" resolve="methodsToBeOverriden" />
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbH" id="3cj_LrgRVdt" role="3cqZAp" />
+          </node>
+          <node concept="2ShNRf" id="3cj_LrgRpNS" role="L3pyr">
+            <node concept="1pGfFk" id="2PvylaaIwG" role="2ShVmc">
+              <property role="373rjd" value="true" />
+              <ref role="37wK5l" to="z1c3:~GlobalScope.&lt;init&gt;(org.jetbrains.mps.openapi.module.SRepository)" resolve="GlobalScope" />
+              <node concept="2OqwBi" id="2PvylaaPL4" role="37wK5m">
+                <node concept="1MG55F" id="2PvylaaO$m" role="2Oq$k0" />
+                <node concept="liA8E" id="2PvylaaRZB" role="2OqNvi">
+                  <ref role="37wK5l" to="z1c3:~Project.getRepository()" resolve="getRepository" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbH" id="3cj_LrgQ_Y1" role="3cqZAp" />
+        <node concept="L3pyB" id="3cj_LrgQAfE" role="3cqZAp">
+          <node concept="3clFbS" id="3cj_LrgQAfG" role="L3pyw">
+            <node concept="2Gpval" id="3cj_LrgQDfV" role="3cqZAp">
+              <node concept="2GrKxI" id="3cj_LrgQDfZ" role="2Gsz3X">
+                <property role="TrG5h" value="thisBehavior" />
+              </node>
+              <node concept="3clFbS" id="3cj_LrgQDg7" role="2LFqv$">
+                <node concept="3cpWs8" id="3cj_LrgQOGF" role="3cqZAp">
+                  <node concept="3cpWsn" id="3cj_LrgQOGG" role="3cpWs9">
+                    <property role="TrG5h" value="allSuperBehaviors" />
+                    <node concept="2I9FWS" id="3cj_LrgQOCg" role="1tU5fm">
+                      <ref role="2I9WkF" to="1i04:hP3h7Gq" resolve="ConceptBehavior" />
+                    </node>
+                    <node concept="2OqwBi" id="3cj_LrgQOGH" role="33vP2m">
+                      <node concept="2GrUjf" id="3cj_LrgQOGI" role="2Oq$k0">
+                        <ref role="2Gs0qQ" node="3cj_LrgQDfZ" resolve="crtBehavior" />
+                      </node>
+                      <node concept="2qgKlT" id="3cj_LrgQOGJ" role="2OqNvi">
+                        <ref role="37wK5l" to="csvn:1$X$vL9L8i8" resolve="getAllSuperBehaviors" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+                <node concept="3clFbJ" id="3cj_LrgQDsn" role="3cqZAp">
+                  <node concept="3clFbS" id="3cj_LrgQDsp" role="3clFbx">
+                    <node concept="3N13vt" id="3cj_LrgQOF7" role="3cqZAp" />
+                  </node>
+                  <node concept="2OqwBi" id="3cj_LrgTQ7K" role="3clFbw">
+                    <node concept="2OqwBi" id="3cj_LrgQO_g" role="2Oq$k0">
+                      <node concept="37vLTw" id="3cj_LrgQOGK" role="2Oq$k0">
+                        <ref role="3cqZAo" node="3cj_LrgQOGG" resolve="allSuperBehaviors" />
+                      </node>
+                      <node concept="60FfQ" id="3cj_LrgTPv9" role="2OqNvi">
+                        <node concept="37vLTw" id="3cj_LrgTPxM" role="576Qk">
+                          <ref role="3cqZAo" node="3cj_LrgQbQf" resolve="parentConceptBehaviors" />
+                        </node>
+                      </node>
+                    </node>
+                    <node concept="1v1jN8" id="3cj_LrgTRHg" role="2OqNvi" />
+                  </node>
+                </node>
+                <node concept="3clFbH" id="3cj_LrgVCsS" role="3cqZAp" />
+                <node concept="3cpWs8" id="3cj_LrgVDkd" role="3cqZAp">
+                  <node concept="3cpWsn" id="3cj_LrgVDke" role="3cpWs9">
+                    <property role="TrG5h" value="allSuperBehaviorMethods" />
+                    <node concept="A3Dl8" id="3cj_LrgVCUC" role="1tU5fm">
+                      <node concept="3Tqbb2" id="3cj_LrgVCUF" role="A3Ik2">
+                        <ref role="ehGHo" to="1i04:hP3i0lY" resolve="ConceptMethodDeclaration" />
+                      </node>
+                    </node>
+                    <node concept="2OqwBi" id="3cj_LrgVDkf" role="33vP2m">
+                      <node concept="37vLTw" id="3cj_LrgVDkg" role="2Oq$k0">
+                        <ref role="3cqZAo" node="3cj_LrgQOGG" resolve="allSuperBehaviors" />
+                      </node>
+                      <node concept="3goQfb" id="3cj_LrgVDkh" role="2OqNvi">
+                        <node concept="1bVj0M" id="3cj_LrgVDki" role="23t8la">
+                          <node concept="3clFbS" id="3cj_LrgVDkj" role="1bW5cS">
+                            <node concept="3clFbF" id="3cj_LrgVDkk" role="3cqZAp">
+                              <node concept="2OqwBi" id="3cj_LrgVDkl" role="3clFbG">
+                                <node concept="2OqwBi" id="3cj_LrgVDkm" role="2Oq$k0">
+                                  <node concept="2OqwBi" id="3cj_LrgVDkn" role="2Oq$k0">
+                                    <node concept="37vLTw" id="3cj_LrgVDko" role="2Oq$k0">
+                                      <ref role="3cqZAo" node="3cj_LrgVDkt" resolve="behavior" />
+                                    </node>
+                                    <node concept="2qgKlT" id="3cj_LrgVDkp" role="2OqNvi">
+                                      <ref role="37wK5l" to="tpek:hEwJjl2" resolve="getMembers" />
+                                    </node>
+                                  </node>
+                                  <node concept="v3k3i" id="3cj_LrgVDkq" role="2OqNvi">
+                                    <node concept="chp4Y" id="3cj_LrgVDkr" role="v3oSu">
+                                      <ref role="cht4Q" to="1i04:hP3i0lY" resolve="ConceptMethodDeclaration" />
+                                    </node>
+                                  </node>
+                                </node>
+                                <node concept="13MTOL" id="3cj_LrgVDks" role="2OqNvi">
+                                  <ref role="13MTZf" to="1i04:hP3i0lZ" resolve="overriddenMethod" />
+                                </node>
+                              </node>
+                            </node>
+                          </node>
+                          <node concept="gl6BB" id="3cj_LrgVDkt" role="1bW2Oz">
+                            <property role="TrG5h" value="behavior" />
+                            <node concept="2jxLKc" id="3cj_LrgVDku" role="1tU5fm" />
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                </node>
+                <node concept="3clFbH" id="3cj_LrgX7Ka" role="3cqZAp" />
+                <node concept="2Gpval" id="3cj_LrgVMiE" role="3cqZAp">
+                  <node concept="2GrKxI" id="3cj_LrgVMiG" role="2Gsz3X">
+                    <property role="TrG5h" value="thisMethod" />
+                  </node>
+                  <node concept="3clFbS" id="3cj_LrgVMiK" role="2LFqv$">
+                    <node concept="3cpWs8" id="3cj_LrgRluS" role="3cqZAp">
+                      <node concept="3cpWsn" id="3cj_LrgRluT" role="3cpWs9">
+                        <property role="TrG5h" value="msg" />
+                        <node concept="17QB3L" id="3cj_LrgRluU" role="1tU5fm" />
+                        <node concept="3cpWs3" id="3cj_LrgRluV" role="33vP2m">
+                          <node concept="Xl_RD" id="3cj_LrgRluW" role="3uHU7w">
+                            <property role="Xl_RC" value=" or in one of its ancestors." />
+                          </node>
+                          <node concept="3cpWs3" id="3cj_LrgRluX" role="3uHU7B">
+                            <node concept="3cpWs3" id="3cj_LrgRluY" role="3uHU7B">
+                              <node concept="3cpWs3" id="3cj_LrgVVyZ" role="3uHU7B">
+                                <node concept="2OqwBi" id="3cj_LrgVY4M" role="3uHU7w">
+                                  <node concept="2OqwBi" id="3cj_LrgVXCF" role="2Oq$k0">
+                                    <node concept="2OqwBi" id="3cj_LrgVW2n" role="2Oq$k0">
+                                      <node concept="2GrUjf" id="3cj_LrgVVE6" role="2Oq$k0">
+                                        <ref role="2Gs0qQ" node="3cj_LrgVMiG" resolve="thisMethod" />
+                                      </node>
+                                      <node concept="I4A8Y" id="3cj_LrgVXm$" role="2OqNvi" />
+                                    </node>
+                                    <node concept="13u695" id="3cj_LrgVXPS" role="2OqNvi" />
+                                  </node>
+                                  <node concept="2qgKlT" id="3cj_LrgVYV1" role="2OqNvi">
+                                    <ref role="37wK5l" to="tpcu:22G2W3WJ92t" resolve="getDetailedPresentation" />
+                                  </node>
+                                </node>
+                                <node concept="3cpWs3" id="3cj_LrgVTmy" role="3uHU7B">
+                                  <node concept="3cpWs3" id="3cj_LrgRluZ" role="3uHU7B">
+                                    <node concept="3cpWs3" id="3cj_LrgRlv0" role="3uHU7B">
+                                      <node concept="3cpWs3" id="3cj_LrgRlv1" role="3uHU7B">
+                                        <node concept="Xl_RD" id="3cj_LrgRlv2" role="3uHU7B">
+                                          <property role="Xl_RC" value="Virtual method '" />
+                                        </node>
+                                        <node concept="2j1LYi" id="3cj_LrgVTf1" role="3uHU7w">
+                                          <ref role="2j1LYj" node="3cj_LrgPwgC" resolve="methodName" />
+                                        </node>
+                                      </node>
+                                      <node concept="Xl_RD" id="3cj_LrgRlv4" role="3uHU7w">
+                                        <property role="Xl_RC" value="' from concept " />
+                                      </node>
+                                    </node>
+                                    <node concept="2j1LYi" id="3cj_LrgRlv5" role="3uHU7w">
+                                      <ref role="2j1LYj" node="3cj_LrgPwgE" resolve="parentConceptName" />
+                                    </node>
+                                  </node>
+                                  <node concept="Xl_RD" id="3cj_LrgVTtv" role="3uHU7w">
+                                    <property role="Xl_RC" value=", defined in language " />
+                                  </node>
+                                </node>
+                              </node>
+                              <node concept="Xl_RD" id="3cj_LrgRlv6" role="3uHU7w">
+                                <property role="Xl_RC" value=", must be implemented in subConcept " />
+                              </node>
+                            </node>
+                            <node concept="2OqwBi" id="3cj_LrgRlv7" role="3uHU7w">
+                              <node concept="2GrUjf" id="3cj_LrgRmaS" role="2Oq$k0">
+                                <ref role="2Gs0qQ" node="3cj_LrgQDfZ" resolve="thisBehavior" />
+                              </node>
+                              <node concept="3TrEf2" id="3cj_LrgRlv9" role="2OqNvi">
+                                <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
+                              </node>
+                            </node>
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                    <node concept="3clFbF" id="3cj_LrgRlva" role="3cqZAp">
+                      <node concept="2OqwBi" id="3cj_LrgRlvb" role="3clFbG">
+                        <node concept="37vLTw" id="3cj_LrgRlvc" role="2Oq$k0">
+                          <ref role="3cqZAo" node="3cj_LrgPDey" resolve="res" />
+                        </node>
+                        <node concept="TSZUe" id="3cj_LrgRlvd" role="2OqNvi">
+                          <node concept="2ShNRf" id="3cj_LrgRlve" role="25WWJ7">
+                            <node concept="1pGfFk" id="3cj_LrgRlvf" role="2ShVmc">
+                              <ref role="37wK5l" to="zn9m:~Pair.&lt;init&gt;(java.lang.Object,java.lang.Object)" resolve="Pair" />
+                              <node concept="37vLTw" id="3cj_LrgRlvg" role="37wK5m">
+                                <ref role="3cqZAo" node="3cj_LrgRluT" resolve="msg" />
+                              </node>
+                              <node concept="2GrUjf" id="3cj_LrgRmyO" role="37wK5m">
+                                <ref role="2Gs0qQ" node="3cj_LrgQDfZ" resolve="thisBehavior" />
+                              </node>
+                            </node>
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                  </node>
+                  <node concept="2OqwBi" id="3cj_LrgVKz$" role="2GsD0m">
+                    <node concept="37vLTw" id="3cj_LrgVKz_" role="2Oq$k0">
+                      <ref role="3cqZAo" node="3cj_LrgSJ2K" resolve="methodsToBeOverriden" />
+                    </node>
+                    <node concept="66VNe" id="3cj_LrgVKzA" role="2OqNvi">
+                      <node concept="37vLTw" id="3cj_LrgVKzB" role="576Qk">
+                        <ref role="3cqZAo" node="3cj_LrgVDke" resolve="allSuperBehaviorMethods" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="qVDSY" id="3cj_LrgQCd4" role="2GsD0m">
+                <node concept="chp4Y" id="3cj_LrgQCgy" role="qVDSX">
+                  <ref role="cht4Q" to="1i04:hP3h7Gq" resolve="ConceptBehavior" />
+                </node>
+              </node>
+            </node>
+          </node>
+          <node concept="1MG55F" id="3cj_LrgQAxf" role="L3pyr" />
+        </node>
+        <node concept="3clFbH" id="3cj_LrgPDj5" role="3cqZAp" />
+        <node concept="3cpWs6" id="3cj_LrgYfeO" role="3cqZAp">
+          <node concept="37vLTw" id="3cj_LrgPDll" role="3cqZAk">
+            <ref role="3cqZAo" node="3cj_LrgPDey" resolve="res" />
+          </node>
+        </node>
+      </node>
     </node>
   </node>
 </model>

From 8b325c3a0be0079529633978f462fba846e34258 Mon Sep 17 00:00:00 2001
From: Vit Losenicky <vit.losenicky@porsche-engineering.cz>
Date: Tue, 5 Nov 2024 10:41:19 +0100
Subject: [PATCH 35/42] updates docstring

---
 ...ps_lang.linters_library.behavior_aspect.mps | 18 ++++++------------
 1 file changed, 6 insertions(+), 12 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
index ad4891d9..e6b7f263 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
@@ -1279,20 +1279,14 @@
         <node concept="3oM_SD" id="3cj_LrgRnHC" role="1PaTwD">
           <property role="3oM_SC" value="the" />
         </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHD" role="1PaTwD">
-          <property role="3oM_SC" value="root" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHE" role="1PaTwD">
-          <property role="3oM_SC" value="nodes" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHF" role="1PaTwD">
-          <property role="3oM_SC" value="will" />
+        <node concept="3oM_SD" id="3cj_LrgZosT" role="1PaTwD">
+          <property role="3oM_SC" value="method" />
         </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHG" role="1PaTwD">
-          <property role="3oM_SC" value="be" />
+        <node concept="3oM_SD" id="3cj_LrgZosU" role="1PaTwD">
+          <property role="3oM_SC" value="is" />
         </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHH" role="1PaTwD">
-          <property role="3oM_SC" value="tested" />
+        <node concept="3oM_SD" id="3cj_LrgZosV" role="1PaTwD">
+          <property role="3oM_SC" value="defined" />
         </node>
       </node>
       <node concept="1PaTwC" id="3cj_LrgRnHJ" role="1PaQFQ">

From 1925f8e38eb5422b8107931a3d9d51b97d3fc1d3 Mon Sep 17 00:00:00 2001
From: Vit Losenicky <vit.losenicky@porsche-engineering.cz>
Date: Tue, 5 Nov 2024 11:09:41 +0100
Subject: [PATCH 36/42] fixes resolve info

---
 .../org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
index e6b7f263..66d63b29 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
@@ -1709,7 +1709,7 @@
                     </node>
                     <node concept="2OqwBi" id="3cj_LrgQOGH" role="33vP2m">
                       <node concept="2GrUjf" id="3cj_LrgQOGI" role="2Oq$k0">
-                        <ref role="2Gs0qQ" node="3cj_LrgQDfZ" resolve="crtBehavior" />
+                        <ref role="2Gs0qQ" node="3cj_LrgQDfZ" resolve="thisBehavior" />
                       </node>
                       <node concept="2qgKlT" id="3cj_LrgQOGJ" role="2OqNvi">
                         <ref role="37wK5l" to="csvn:1$X$vL9L8i8" resolve="getAllSuperBehaviors" />

From 5cda70c66a67fbf68abe05bdb4583510541bcad9 Mon Sep 17 00:00:00 2001
From: Daniel Ratiu <ratiud@mail.google.com>
Date: Tue, 5 Nov 2024 23:10:52 +0100
Subject: [PATCH 37/42] lint: cosmetic improvements of
 'mandatory_virtual_method_override'

---
 ...s_lang.linters_library.behavior_aspect.mps | 236 +++++-------------
 1 file changed, 59 insertions(+), 177 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
index 66d63b29..01b4a652 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
@@ -58,7 +58,6 @@
       <concept id="1068498886294" name="jetbrains.mps.baseLanguage.structure.AssignmentExpression" flags="nn" index="37vLTI" />
       <concept id="1225271177708" name="jetbrains.mps.baseLanguage.structure.StringType" flags="in" index="17QB3L" />
       <concept id="1225271283259" name="jetbrains.mps.baseLanguage.structure.NPEEqualsExpression" flags="nn" index="17R0WA" />
-      <concept id="1225271408483" name="jetbrains.mps.baseLanguage.structure.IsNotEmptyOperation" flags="nn" index="17RvpY" />
       <concept id="4972933694980447171" name="jetbrains.mps.baseLanguage.structure.BaseVariableDeclaration" flags="ng" index="19Szcq">
         <child id="5680397130376446158" name="type" index="1tU5fm" />
       </concept>
@@ -1165,13 +1164,13 @@
         <ref role="2j1LYj" node="3cj_LrgP$aX" resolve="languageName" />
       </node>
       <node concept="Xl_RD" id="3cj_LrgPAAx" role="2j1LYg">
-        <property role="Xl_RC" value="" />
+        <property role="Xl_RC" value="jetbrains.mps.lang.core" />
       </node>
     </node>
     <node concept="1Pa9Pv" id="3cj_LrgPwgM" role="1MIJl8">
       <node concept="1PaTwC" id="3cj_LrgPwgN" role="1PaQFQ">
         <node concept="3oM_SD" id="3cj_LrgVU8W" role="1PaTwD">
-          <property role="3oM_SC" value="Determines" />
+          <property role="3oM_SC" value="Checks" />
         </node>
         <node concept="3oM_SD" id="3cj_LrgPwgQ" role="1PaTwD">
           <property role="3oM_SC" value="whether" />
@@ -1186,7 +1185,10 @@
           <property role="3oM_SC" value="virtual" />
         </node>
         <node concept="3oM_SD" id="3cj_LrgPwgU" role="1PaTwD">
-          <property role="3oM_SC" value="method," />
+          <property role="3oM_SC" value="method" />
+        </node>
+        <node concept="3oM_SD" id="6tIpANuUN5s" role="1PaTwD">
+          <property role="3oM_SC" value="-" />
         </node>
         <node concept="3oM_SD" id="3cj_LrgPwgV" role="1PaTwD">
           <property role="3oM_SC" value="specified" />
@@ -1207,7 +1209,10 @@
           <property role="3oM_SC" value="and" />
         </node>
         <node concept="3oM_SD" id="3cj_LrgVU8Z" role="1PaTwD">
-          <property role="3oM_SC" value="language," />
+          <property role="3oM_SC" value="language" />
+        </node>
+        <node concept="3oM_SD" id="6tIpANuUN6s" role="1PaTwD">
+          <property role="3oM_SC" value="-" />
         </node>
         <node concept="3oM_SD" id="3cj_LrgVU94" role="1PaTwD">
           <property role="3oM_SC" value="is" />
@@ -1222,7 +1227,7 @@
           <property role="3oM_SC" value="all" />
         </node>
         <node concept="3oM_SD" id="3cj_LrgPwh8" role="1PaTwD">
-          <property role="3oM_SC" value="subConcepts" />
+          <property role="3oM_SC" value="sub-concepts" />
         </node>
         <node concept="3oM_SD" id="3cj_LrgVU95" role="1PaTwD">
           <property role="3oM_SC" value="or" />
@@ -1237,7 +1242,7 @@
           <property role="3oM_SC" value="their" />
         </node>
         <node concept="3oM_SD" id="3cj_LrgVU9b" role="1PaTwD">
-          <property role="3oM_SC" value="parents." />
+          <property role="3oM_SC" value="ancestors." />
         </node>
       </node>
       <node concept="1PaTwC" id="3cj_LrgPwh9" role="1PaQFQ">
@@ -1259,26 +1264,26 @@
           <property role="3oM_SC" value="-" />
         </node>
         <node concept="3oM_SD" id="3cj_LrgYfe6" role="1PaTwD">
-          <property role="3oM_SC" value="substring" />
+          <property role="3oM_SC" value="name" />
         </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHz" role="1PaTwD">
+        <node concept="3oM_SD" id="6tIpANuT7kS" role="1PaTwD">
           <property role="3oM_SC" value="of" />
         </node>
-        <node concept="3oM_SD" id="3cj_LrgRnH$" role="1PaTwD">
+        <node concept="3oM_SD" id="6tIpANuT7lS" role="1PaTwD">
           <property role="3oM_SC" value="the" />
         </node>
-        <node concept="3oM_SD" id="3cj_LrgRnH_" role="1PaTwD">
-          <property role="3oM_SC" value="module" />
+        <node concept="3oM_SD" id="6tIpANuT7nd" role="1PaTwD">
+          <property role="3oM_SC" value="language" />
         </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHA" role="1PaTwD">
-          <property role="3oM_SC" value="name" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHB" role="1PaTwD">
+        <node concept="3oM_SD" id="6tIpANuT7sP" role="1PaTwD">
           <property role="3oM_SC" value="where" />
         </node>
         <node concept="3oM_SD" id="3cj_LrgRnHC" role="1PaTwD">
           <property role="3oM_SC" value="the" />
         </node>
+        <node concept="3oM_SD" id="6tIpANuT7tb" role="1PaTwD">
+          <property role="3oM_SC" value="concept" />
+        </node>
         <node concept="3oM_SD" id="3cj_LrgZosT" role="1PaTwD">
           <property role="3oM_SC" value="method" />
         </node>
@@ -1286,98 +1291,12 @@
           <property role="3oM_SC" value="is" />
         </node>
         <node concept="3oM_SD" id="3cj_LrgZosV" role="1PaTwD">
-          <property role="3oM_SC" value="defined" />
-        </node>
-      </node>
-      <node concept="1PaTwC" id="3cj_LrgRnHJ" role="1PaQFQ">
-        <node concept="3oM_SD" id="3cj_LrgRnHK" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHL" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHM" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHN" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHO" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHP" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHQ" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHR" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHS" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHT" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHU" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHV" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHW" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHX" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHY" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnHZ" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnI0" role="1PaTwD">
-          <property role="3oM_SC" value="" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnI1" role="1PaTwD">
-          <property role="3oM_SC" value="if" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnI2" role="1PaTwD">
-          <property role="3oM_SC" value="the" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnI3" role="1PaTwD">
-          <property role="3oM_SC" value="string" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnI4" role="1PaTwD">
-          <property role="3oM_SC" value="is" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnI5" role="1PaTwD">
-          <property role="3oM_SC" value="empty" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnI6" role="1PaTwD">
-          <property role="3oM_SC" value="(&quot;&quot;)," />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnI7" role="1PaTwD">
-          <property role="3oM_SC" value="all" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnI8" role="1PaTwD">
-          <property role="3oM_SC" value="languages" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnI9" role="1PaTwD">
-          <property role="3oM_SC" value="will" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgRnIa" role="1PaTwD">
-          <property role="3oM_SC" value="be" />
-        </node>
-        <node concept="3oM_SD" id="3cj_LrgYfe3" role="1PaTwD">
-          <property role="3oM_SC" value="considered." />
+          <property role="3oM_SC" value="defined." />
         </node>
       </node>
       <node concept="1PaTwC" id="3cj_LrgPwhC" role="1PaQFQ">
         <node concept="3oM_SD" id="3cj_LrgRnIC" role="1PaTwD">
-          <property role="3oM_SC" value="parentConcept" />
+          <property role="3oM_SC" value="parentConceptName" />
         </node>
         <node concept="3oM_SD" id="3cj_LrgRnID" role="1PaTwD">
           <property role="3oM_SC" value="-" />
@@ -1493,7 +1412,6 @@
             </node>
           </node>
         </node>
-        <node concept="3clFbH" id="3cj_LrgQ$Ji" role="3cqZAp" />
         <node concept="L3pyB" id="2TekImn84bD" role="3cqZAp">
           <property role="1Fhty8" value="true" />
           <node concept="3clFbS" id="2TekImn84bE" role="L3pyw">
@@ -1509,21 +1427,45 @@
                     <node concept="1bVj0M" id="3cj_LrgQbQk" role="23t8la">
                       <node concept="3clFbS" id="3cj_LrgQbQl" role="1bW5cS">
                         <node concept="3clFbF" id="3cj_LrgQbQm" role="3cqZAp">
-                          <node concept="17R0WA" id="3cj_LrgQbQn" role="3clFbG">
-                            <node concept="2j1LYi" id="3cj_LrgQbQo" role="3uHU7w">
-                              <ref role="2j1LYj" node="3cj_LrgPwgE" resolve="parentConceptName" />
+                          <node concept="1Wc70l" id="6tIpANuUM7S" role="3clFbG">
+                            <node concept="17R0WA" id="3cj_LrgQbQn" role="3uHU7B">
+                              <node concept="2OqwBi" id="3cj_LrgQbQp" role="3uHU7B">
+                                <node concept="2OqwBi" id="3cj_LrgQkb6" role="2Oq$k0">
+                                  <node concept="37vLTw" id="3cj_LrgQbQq" role="2Oq$k0">
+                                    <ref role="3cqZAo" node="3cj_LrgQbQs" resolve="it" />
+                                  </node>
+                                  <node concept="3TrEf2" id="3cj_LrgQkUW" role="2OqNvi">
+                                    <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
+                                  </node>
+                                </node>
+                                <node concept="3TrcHB" id="3cj_LrgQbQr" role="2OqNvi">
+                                  <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
+                                </node>
+                              </node>
+                              <node concept="2j1LYi" id="3cj_LrgQbQo" role="3uHU7w">
+                                <ref role="2j1LYj" node="3cj_LrgPwgE" resolve="parentConceptName" />
+                              </node>
                             </node>
-                            <node concept="2OqwBi" id="3cj_LrgQbQp" role="3uHU7B">
-                              <node concept="2OqwBi" id="3cj_LrgQkb6" role="2Oq$k0">
-                                <node concept="37vLTw" id="3cj_LrgQbQq" role="2Oq$k0">
-                                  <ref role="3cqZAo" node="3cj_LrgQbQs" resolve="it" />
+                            <node concept="2OqwBi" id="6tIpANuUMd6" role="3uHU7w">
+                              <node concept="2OqwBi" id="6tIpANuUMd7" role="2Oq$k0">
+                                <node concept="2OqwBi" id="6tIpANuUMd8" role="2Oq$k0">
+                                  <node concept="2OqwBi" id="6tIpANuUMd9" role="2Oq$k0">
+                                    <node concept="37vLTw" id="6tIpANuUMda" role="2Oq$k0">
+                                      <ref role="3cqZAo" node="3cj_LrgQbQs" resolve="it" />
+                                    </node>
+                                    <node concept="I4A8Y" id="6tIpANuUMdb" role="2OqNvi" />
+                                  </node>
+                                  <node concept="13u695" id="6tIpANuUMdc" role="2OqNvi" />
                                 </node>
-                                <node concept="3TrEf2" id="3cj_LrgQkUW" role="2OqNvi">
-                                  <ref role="3Tt5mk" to="1i04:hP3h7Gv" resolve="concept" />
+                                <node concept="3TrcHB" id="6tIpANuUMdd" role="2OqNvi">
+                                  <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
                                 </node>
                               </node>
-                              <node concept="3TrcHB" id="3cj_LrgQbQr" role="2OqNvi">
-                                <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
+                              <node concept="liA8E" id="6tIpANuUMde" role="2OqNvi">
+                                <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
+                                <node concept="2j1LYi" id="6tIpANuUMdf" role="37wK5m">
+                                  <ref role="2j1LYj" node="3cj_LrgP$aX" resolve="languageName" />
+                                </node>
                               </node>
                             </node>
                           </node>
@@ -1541,64 +1483,6 @@
                 </node>
               </node>
             </node>
-            <node concept="3clFbH" id="3cj_LrgRUDy" role="3cqZAp" />
-            <node concept="3clFbJ" id="3cj_LrgS9yD" role="3cqZAp">
-              <node concept="3clFbS" id="3cj_LrgS9yF" role="3clFbx">
-                <node concept="3clFbF" id="3cj_LrgSbPz" role="3cqZAp">
-                  <node concept="37vLTI" id="3cj_LrgSeab" role="3clFbG">
-                    <node concept="2OqwBi" id="3cj_LrgSeg5" role="37vLTx">
-                      <node concept="37vLTw" id="3cj_LrgSecR" role="2Oq$k0">
-                        <ref role="3cqZAo" node="3cj_LrgQbQf" resolve="parentConceptBehaviors" />
-                      </node>
-                      <node concept="3zZkjj" id="3cj_LrgSfoe" role="2OqNvi">
-                        <node concept="1bVj0M" id="3cj_LrgSfog" role="23t8la">
-                          <node concept="3clFbS" id="3cj_LrgSfoh" role="1bW5cS">
-                            <node concept="3clFbF" id="3cj_LrgSftb" role="3cqZAp">
-                              <node concept="2OqwBi" id="3cj_LrgSi_Y" role="3clFbG">
-                                <node concept="2OqwBi" id="3cj_LrgSgZm" role="2Oq$k0">
-                                  <node concept="2OqwBi" id="3cj_LrgSg_j" role="2Oq$k0">
-                                    <node concept="2OqwBi" id="3cj_LrgSfGo" role="2Oq$k0">
-                                      <node concept="37vLTw" id="3cj_LrgSfta" role="2Oq$k0">
-                                        <ref role="3cqZAo" node="3cj_LrgSfoi" resolve="it" />
-                                      </node>
-                                      <node concept="I4A8Y" id="3cj_LrgSglZ" role="2OqNvi" />
-                                    </node>
-                                    <node concept="13u695" id="3cj_LrgSgKo" role="2OqNvi" />
-                                  </node>
-                                  <node concept="3TrcHB" id="3cj_LrgShe9" role="2OqNvi">
-                                    <ref role="3TsBF5" to="tpck:h0TrG11" resolve="name" />
-                                  </node>
-                                </node>
-                                <node concept="liA8E" id="3cj_LrgSjjO" role="2OqNvi">
-                                  <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
-                                  <node concept="2j1LYi" id="3cj_LrgSjpj" role="37wK5m">
-                                    <ref role="2j1LYj" node="3cj_LrgP$aX" resolve="languageName" />
-                                  </node>
-                                </node>
-                              </node>
-                            </node>
-                          </node>
-                          <node concept="gl6BB" id="3cj_LrgSfoi" role="1bW2Oz">
-                            <property role="TrG5h" value="it" />
-                            <node concept="2jxLKc" id="3cj_LrgSfoj" role="1tU5fm" />
-                          </node>
-                        </node>
-                      </node>
-                    </node>
-                    <node concept="37vLTw" id="3cj_LrgSbPx" role="37vLTJ">
-                      <ref role="3cqZAo" node="3cj_LrgQbQf" resolve="parentConceptBehaviors" />
-                    </node>
-                  </node>
-                </node>
-              </node>
-              <node concept="2OqwBi" id="3cj_LrgSb7q" role="3clFbw">
-                <node concept="2j1LYi" id="3cj_LrgSa74" role="2Oq$k0">
-                  <ref role="2j1LYj" node="3cj_LrgP$aX" resolve="languageName" />
-                </node>
-                <node concept="17RvpY" id="3cj_LrgSbNI" role="2OqNvi" />
-              </node>
-            </node>
-            <node concept="3clFbH" id="3cj_LrgR_YG" role="3cqZAp" />
             <node concept="3clFbF" id="3cj_LrgSMiK" role="3cqZAp">
               <node concept="37vLTI" id="3cj_LrgSMiM" role="3clFbG">
                 <node concept="2OqwBi" id="3cj_LrgSJ2L" role="37vLTx">
@@ -1678,7 +1562,6 @@
                 </node>
               </node>
             </node>
-            <node concept="3clFbH" id="3cj_LrgRVdt" role="3cqZAp" />
           </node>
           <node concept="2ShNRf" id="3cj_LrgRpNS" role="L3pyr">
             <node concept="1pGfFk" id="2PvylaaIwG" role="2ShVmc">
@@ -1783,7 +1666,6 @@
                     </node>
                   </node>
                 </node>
-                <node concept="3clFbH" id="3cj_LrgX7Ka" role="3cqZAp" />
                 <node concept="2Gpval" id="3cj_LrgVMiE" role="3cqZAp">
                   <node concept="2GrKxI" id="3cj_LrgVMiG" role="2Gsz3X">
                     <property role="TrG5h" value="thisMethod" />
@@ -1839,7 +1721,7 @@
                                 </node>
                               </node>
                               <node concept="Xl_RD" id="3cj_LrgRlv6" role="3uHU7w">
-                                <property role="Xl_RC" value=", must be implemented in subConcept " />
+                                <property role="Xl_RC" value=", must be implemented in sub-concept " />
                               </node>
                             </node>
                             <node concept="2OqwBi" id="3cj_LrgRlv7" role="3uHU7w">

From 493799ce026257dd02be0ebbb39cadd35aaa6b96 Mon Sep 17 00:00:00 2001
From: danielratiu <ratiud@googlemail.com>
Date: Thu, 7 Nov 2024 15:44:22 +0100
Subject: [PATCH 38/42] deprecated: enhanced the "DeprecatedNodesFinder" to
 search also for references to deprecated nodes (#227)

* deprecated: enhanced the "DeprecatedNodesFinder" to search also for references to deprecated nodes

* deprecated: File -> Force Save All

* deprecated: fixed the case when a node references MORE deprecated nodes ...
+ remove the restriction to consider only a subset of deprecated  results when too many deprecations are found

---------

Co-authored-by: Daniel Ratiu <ratiud@mail.google.com>
---
 .../models/org.mpsqa.deprecated.editor.mps    | 146 +++-
 .../org.mpsqa.deprecated.intentions.mps       | 643 +++++++++++++-----
 .../models/org.mpsqa.deprecated.structure.mps |  31 +-
 ...eprecated._010_deprecation_tests@tests.mps |   2 +-
 4 files changed, 647 insertions(+), 175 deletions(-)

diff --git a/code/languages/org.mpsqa.deprecated/languages/org.mpsqa.deprecated/models/org.mpsqa.deprecated.editor.mps b/code/languages/org.mpsqa.deprecated/languages/org.mpsqa.deprecated/models/org.mpsqa.deprecated.editor.mps
index e802abb8..bafd6bd4 100644
--- a/code/languages/org.mpsqa.deprecated/languages/org.mpsqa.deprecated/models/org.mpsqa.deprecated.editor.mps
+++ b/code/languages/org.mpsqa.deprecated/languages/org.mpsqa.deprecated/models/org.mpsqa.deprecated.editor.mps
@@ -122,12 +122,17 @@
     <language id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel">
       <concept id="1179168000618" name="jetbrains.mps.lang.smodel.structure.Node_GetIndexInParentOperation" flags="nn" index="2bSWHS" />
       <concept id="7453996997717780434" name="jetbrains.mps.lang.smodel.structure.Node_GetSConceptOperation" flags="nn" index="2yIwOk" />
+      <concept id="1143234257716" name="jetbrains.mps.lang.smodel.structure.Node_GetModelOperation" flags="nn" index="I4A8Y" />
+      <concept id="1212008292747" name="jetbrains.mps.lang.smodel.structure.Model_GetLongNameOperation" flags="nn" index="LkI2h" />
       <concept id="3562215692195599741" name="jetbrains.mps.lang.smodel.structure.SLinkImplicitSelect" flags="nn" index="13MTOL">
         <reference id="3562215692195600259" name="link" index="13MTZf" />
       </concept>
       <concept id="1138056022639" name="jetbrains.mps.lang.smodel.structure.SPropertyAccess" flags="nn" index="3TrcHB">
         <reference id="1138056395725" name="property" index="3TsBF5" />
       </concept>
+      <concept id="1138056143562" name="jetbrains.mps.lang.smodel.structure.SLinkAccess" flags="nn" index="3TrEf2">
+        <reference id="1138056516764" name="link" index="3Tt5mk" />
+      </concept>
       <concept id="1138056282393" name="jetbrains.mps.lang.smodel.structure.SLinkListAccess" flags="nn" index="3Tsc0h">
         <reference id="1138056546658" name="link" index="3TtcxE" />
       </concept>
@@ -145,8 +150,23 @@
       <node concept="3F0A7n" id="7LZ1KAVSF$P" role="3EZMnx">
         <ref role="1NtTu8" to="tpck:h0TrG11" resolve="name" />
       </node>
-      <node concept="3F0ifn" id="7LZ1KAVSF$T" role="3EZMnx">
-        <node concept="pVoyu" id="dIZf5toFZG" role="3F10Kt">
+      <node concept="3EZMnI" id="2fzXGFm5P$A" role="3EZMnx">
+        <node concept="2iRfu4" id="2fzXGFm5P$B" role="2iSdaV" />
+        <node concept="3F0ifn" id="7LZ1KAVSF$T" role="3EZMnx">
+          <property role="3F0ifm" value="identifies instances of deprecated concepts and references to deprecated nodes" />
+          <node concept="pVoyu" id="dIZf5toFZG" role="3F10Kt">
+            <property role="VOm3f" value="true" />
+          </node>
+          <node concept="VechU" id="2fzXGFm5P$H" role="3F10Kt">
+            <property role="Vb096" value="fLJRk5A/lightGray" />
+          </node>
+        </node>
+        <node concept="pVoyu" id="2fzXGFm5P$D" role="3F10Kt">
+          <property role="VOm3f" value="true" />
+        </node>
+      </node>
+      <node concept="3F0ifn" id="2fzXGFm5P$$" role="3EZMnx">
+        <node concept="pVoyu" id="2fzXGFm5P$_" role="3F10Kt">
           <property role="VOm3f" value="true" />
         </node>
       </node>
@@ -188,7 +208,7 @@
         </node>
       </node>
       <node concept="3F0ifn" id="7mZvE$BcO$c" role="3EZMnx">
-        <property role="3F0ifm" value="Models with deprecated nodes:" />
+        <property role="3F0ifm" value="Models with deprecated nodes (instances of deprecated concepts OR references to deprecated nodes):" />
         <node concept="pVoyu" id="dIZf5tpfnf" role="3F10Kt">
           <property role="VOm3f" value="true" />
         </node>
@@ -319,9 +339,16 @@
       </node>
       <node concept="l2Vlx" id="3imng2mT9LT" role="2iSdaV" />
     </node>
-    <node concept="3F2HdR" id="ah8HpWkSjU" role="6VMZX">
-      <ref role="1NtTu8" to="3idh:ah8HpWiuVW" resolve="deprecatedType" />
-      <node concept="2iRkQZ" id="ah8HpWkSjY" role="2czzBx" />
+    <node concept="3EZMnI" id="2fzXGFm4rBl" role="6VMZX">
+      <node concept="2iRkQZ" id="2fzXGFm4rBm" role="2iSdaV" />
+      <node concept="3F2HdR" id="ah8HpWkSjU" role="3EZMnx">
+        <ref role="1NtTu8" to="3idh:ah8HpWiuVW" resolve="deprecatedConceptResults" />
+        <node concept="2iRkQZ" id="ah8HpWkSjY" role="2czzBx" />
+      </node>
+      <node concept="3F2HdR" id="2fzXGFm4tmb" role="3EZMnx">
+        <ref role="1NtTu8" to="3idh:2fzXGFm4ppM" resolve="deprecatedRefereceTargetResults" />
+        <node concept="2iRkQZ" id="2fzXGFm4tmc" role="2czzBx" />
+      </node>
     </node>
   </node>
   <node concept="24kQdi" id="269xudmuUl0">
@@ -529,5 +556,112 @@
       <node concept="l2Vlx" id="pFzydTDN9z" role="2iSdaV" />
     </node>
   </node>
+  <node concept="24kQdi" id="2fzXGFm3MEb">
+    <ref role="1XX52x" to="3idh:2fzXGFm3KyA" resolve="DeprecatedReferenceTargetResult" />
+    <node concept="3EZMnI" id="2fzXGFm3MEd" role="2wV5jI">
+      <node concept="1HlG4h" id="2fzXGFm3MEe" role="3EZMnx">
+        <node concept="VechU" id="2fzXGFm3MEf" role="3F10Kt">
+          <property role="Vb096" value="fLwANPu/blue" />
+        </node>
+        <node concept="1HfYo3" id="2fzXGFm3MEg" role="1HlULh">
+          <node concept="3TQlhw" id="2fzXGFm3MEh" role="1Hhtcw">
+            <node concept="3clFbS" id="2fzXGFm3MEi" role="2VODD2">
+              <node concept="3clFbF" id="2fzXGFm3MEj" role="3cqZAp">
+                <node concept="2YIFZM" id="2fzXGFm3MEk" role="3clFbG">
+                  <ref role="37wK5l" to="wyt6:~String.format(java.lang.String,java.lang.Object...)" resolve="format" />
+                  <ref role="1Pybhc" to="wyt6:~String" resolve="String" />
+                  <node concept="Xl_RD" id="2fzXGFm3MEl" role="37wK5m">
+                    <property role="Xl_RC" value="%03d" />
+                  </node>
+                  <node concept="3cpWs3" id="2fzXGFm3MEm" role="37wK5m">
+                    <node concept="3cmrfG" id="2fzXGFm3MEn" role="3uHU7w">
+                      <property role="3cmrfH" value="1" />
+                    </node>
+                    <node concept="2OqwBi" id="2fzXGFm3MEo" role="3uHU7B">
+                      <node concept="pncrf" id="2fzXGFm3MEp" role="2Oq$k0" />
+                      <node concept="2bSWHS" id="2fzXGFm3MEq" role="2OqNvi" />
+                    </node>
+                  </node>
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="1iCGBv" id="2fzXGFm3MEr" role="3EZMnx">
+        <ref role="1NtTu8" to="3idh:2fzXGFm3KyB" resolve="targetNode" />
+        <node concept="1sVBvm" id="2fzXGFm3MEs" role="1sWHZn">
+          <node concept="3SHvHV" id="2fzXGFm3MEt" role="2wV5jI" />
+        </node>
+      </node>
+      <node concept="3F0ifn" id="2fzXGFm3MEu" role="3EZMnx">
+        <property role="3F0ifm" value="in model" />
+      </node>
+      <node concept="1HlG4h" id="2fzXGFm3MEv" role="3EZMnx">
+        <node concept="1HfYo3" id="2fzXGFm3MEw" role="1HlULh">
+          <node concept="3TQlhw" id="2fzXGFm3MEx" role="1Hhtcw">
+            <node concept="3clFbS" id="2fzXGFm3MEy" role="2VODD2">
+              <node concept="3clFbF" id="2fzXGFm3MEz" role="3cqZAp">
+                <node concept="2OqwBi" id="2fzXGFm3SOC" role="3clFbG">
+                  <node concept="2OqwBi" id="2fzXGFm3ME_" role="2Oq$k0">
+                    <node concept="2OqwBi" id="2fzXGFm3MED" role="2Oq$k0">
+                      <node concept="pncrf" id="2fzXGFm3MEE" role="2Oq$k0" />
+                      <node concept="3TrEf2" id="2fzXGFm3QW4" role="2OqNvi">
+                        <ref role="3Tt5mk" to="3idh:2fzXGFm3KyB" resolve="targetNode" />
+                      </node>
+                    </node>
+                    <node concept="I4A8Y" id="2fzXGFm3Rxt" role="2OqNvi" />
+                  </node>
+                  <node concept="LkI2h" id="2fzXGFm3Td$" role="2OqNvi" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="ljvvj" id="2fzXGFm3MEL" role="3F10Kt">
+          <property role="VOm3f" value="true" />
+        </node>
+      </node>
+      <node concept="3XFhqQ" id="2fzXGFm3MEM" role="3EZMnx" />
+      <node concept="2yq9I_" id="2fzXGFm3MEN" role="3EZMnx">
+        <ref role="225u1j" to="3idh:2fzXGFm3KyD" resolve="displayReferringNodes" />
+        <node concept="1563Vb" id="2fzXGFm3MEO" role="1563LE">
+          <property role="1563UK" value="[ ]" />
+          <property role="1563Ve" value="[x]" />
+        </node>
+        <node concept="3F0ifn" id="2fzXGFm3MEP" role="2fqkNU">
+          <property role="3F0ifm" value="display references" />
+        </node>
+      </node>
+      <node concept="3EZMnI" id="2fzXGFm3MEQ" role="3EZMnx">
+        <node concept="2iRfu4" id="2fzXGFm3MER" role="2iSdaV" />
+        <node concept="3XFhqQ" id="2fzXGFm3MES" role="3EZMnx">
+          <node concept="pVoyu" id="2fzXGFm3MET" role="3F10Kt">
+            <property role="VOm3f" value="true" />
+          </node>
+        </node>
+        <node concept="pVoyu" id="2fzXGFm3MEU" role="3F10Kt">
+          <property role="VOm3f" value="true" />
+        </node>
+        <node concept="3F2HdR" id="2fzXGFm3MEV" role="3EZMnx">
+          <ref role="1NtTu8" to="3idh:2fzXGFm3KyC" resolve="deprecatedReferringNodes" />
+          <node concept="2iRkQZ" id="2fzXGFm3MEW" role="2czzBx" />
+        </node>
+        <node concept="pkWqt" id="2fzXGFm3MEX" role="pqm2j">
+          <node concept="3clFbS" id="2fzXGFm3MEY" role="2VODD2">
+            <node concept="3clFbF" id="2fzXGFm3MEZ" role="3cqZAp">
+              <node concept="2OqwBi" id="2fzXGFm3MF0" role="3clFbG">
+                <node concept="pncrf" id="2fzXGFm3MF1" role="2Oq$k0" />
+                <node concept="3TrcHB" id="2fzXGFm3MF2" role="2OqNvi">
+                  <ref role="3TsBF5" to="3idh:2fzXGFm3KyD" resolve="displayReferringNodes" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+      </node>
+      <node concept="l2Vlx" id="2fzXGFm3MF3" role="2iSdaV" />
+    </node>
+  </node>
 </model>
 
diff --git a/code/languages/org.mpsqa.deprecated/languages/org.mpsqa.deprecated/models/org.mpsqa.deprecated.intentions.mps b/code/languages/org.mpsqa.deprecated/languages/org.mpsqa.deprecated/models/org.mpsqa.deprecated.intentions.mps
index 236d3765..72019f89 100644
--- a/code/languages/org.mpsqa.deprecated/languages/org.mpsqa.deprecated/models/org.mpsqa.deprecated.intentions.mps
+++ b/code/languages/org.mpsqa.deprecated/languages/org.mpsqa.deprecated/models/org.mpsqa.deprecated.intentions.mps
@@ -163,9 +163,6 @@
         <child id="8276990574886367510" name="catchClause" index="1zxBo5" />
         <child id="8276990574886367508" name="body" index="1zxBo7" />
       </concept>
-      <concept id="6329021646629104954" name="jetbrains.mps.baseLanguage.structure.SingleLineComment" flags="nn" index="3SKdUt">
-        <child id="8356039341262087992" name="line" index="1aUNEU" />
-      </concept>
       <concept id="1146644602865" name="jetbrains.mps.baseLanguage.structure.PublicVisibility" flags="nn" index="3Tm1VV" />
       <concept id="1146644623116" name="jetbrains.mps.baseLanguage.structure.PrivateVisibility" flags="nn" index="3Tm6S6" />
       <concept id="1080120340718" name="jetbrains.mps.baseLanguage.structure.AndExpression" flags="nn" index="1Wc70l" />
@@ -289,14 +286,6 @@
         <child id="3078666699043039389" name="commentedNode" index="8Wnug" />
       </concept>
     </language>
-    <language id="c7fb639f-be78-4307-89b0-b5959c3fa8c8" name="jetbrains.mps.lang.text">
-      <concept id="155656958578482948" name="jetbrains.mps.lang.text.structure.Word" flags="nn" index="3oM_SD">
-        <property id="155656958578482949" name="value" index="3oM_SC" />
-      </concept>
-      <concept id="2535923850359271782" name="jetbrains.mps.lang.text.structure.Line" flags="nn" index="1PaTwC">
-        <child id="2535923850359271783" name="elements" index="1PaTwD" />
-      </concept>
-    </language>
     <language id="1a8554c4-eb84-43ba-8c34-6f0d90c6e75a" name="jetbrains.mps.lang.smodel.query">
       <concept id="7738379549910147341" name="jetbrains.mps.lang.smodel.query.structure.InstancesExpression" flags="ng" index="qVDSY">
         <child id="7738379549910147342" name="conceptArg" index="qVDSX" />
@@ -315,10 +304,6 @@
       <concept id="540871147943773365" name="jetbrains.mps.baseLanguage.collections.structure.SingleArgumentSequenceOperation" flags="nn" index="25WWJ4">
         <child id="540871147943773366" name="argument" index="25WWJ7" />
       </concept>
-      <concept id="1172664342967" name="jetbrains.mps.baseLanguage.collections.structure.TakeOperation" flags="nn" index="8ftyA">
-        <child id="1172664372046" name="elementsToTake" index="8f$Dv" />
-      </concept>
-      <concept id="1204980550705" name="jetbrains.mps.baseLanguage.collections.structure.VisitAllOperation" flags="nn" index="2es0OD" />
       <concept id="1151689724996" name="jetbrains.mps.baseLanguage.collections.structure.SequenceType" flags="in" index="A3Dl8">
         <child id="1151689745422" name="elementType" index="A3Ik2" />
       </concept>
@@ -370,7 +355,7 @@
       <node concept="3clFbS" id="7LZ1KAVSFA5" role="2VODD2">
         <node concept="3clFbF" id="7LZ1KAVSFFK" role="3cqZAp">
           <node concept="Xl_RD" id="7LZ1KAVSFFJ" role="3clFbG">
-            <property role="Xl_RC" value="Identify Instances of Deprecated Concepts from Project" />
+            <property role="Xl_RC" value="Identify Instances of Deprecated Concepts and References to Deprecated Nodes from Project" />
           </node>
         </node>
       </node>
@@ -541,13 +526,24 @@
                   <node concept="1bVj0M" id="45IuY9n8dip" role="23t8la">
                     <node concept="3clFbS" id="45IuY9n8diq" role="1bW5cS">
                       <node concept="3clFbF" id="45IuY9n8dwz" role="3cqZAp">
-                        <node concept="1rXfSq" id="45IuY9n8dwy" role="3clFbG">
-                          <ref role="37wK5l" node="7LZ1KAVTsur" resolve="conceptIsDeprecatedForLongTime" />
-                          <node concept="37vLTw" id="45IuY9n8dBP" role="37wK5m">
-                            <ref role="3cqZAo" node="1vMaDkE5o0a" resolve="it" />
+                        <node concept="22lmx$" id="2fzXGFlm0n6" role="3clFbG">
+                          <node concept="1rXfSq" id="2fzXGFlm1tG" role="3uHU7w">
+                            <ref role="37wK5l" node="2fzXGFlf9qe" resolve="nodeReferencesDeprecatedNodeForLongTime" />
+                            <node concept="37vLTw" id="2fzXGFlm1ER" role="37wK5m">
+                              <ref role="3cqZAo" node="1vMaDkE5o0a" resolve="it" />
+                            </node>
+                            <node concept="37vLTw" id="2fzXGFlm2n6" role="37wK5m">
+                              <ref role="3cqZAo" node="45IuY9n8bvM" resolve="deprecationTime" />
+                            </node>
                           </node>
-                          <node concept="37vLTw" id="45IuY9n8dRs" role="37wK5m">
-                            <ref role="3cqZAo" node="45IuY9n8bvM" resolve="deprecationTime" />
+                          <node concept="1rXfSq" id="45IuY9n8dwy" role="3uHU7B">
+                            <ref role="37wK5l" node="7LZ1KAVTsur" resolve="conceptIsDeprecatedForLongTime" />
+                            <node concept="37vLTw" id="45IuY9n8dBP" role="37wK5m">
+                              <ref role="3cqZAo" node="1vMaDkE5o0a" resolve="it" />
+                            </node>
+                            <node concept="37vLTw" id="45IuY9n8dRs" role="37wK5m">
+                              <ref role="3cqZAo" node="45IuY9n8bvM" resolve="deprecationTime" />
+                            </node>
                           </node>
                         </node>
                       </node>
@@ -619,7 +615,7 @@
               <node concept="3clFbS" id="ah8HpWiNyT" role="2LFqv$">
                 <node concept="3cpWs8" id="45IuY9niQkX" role="3cqZAp">
                   <node concept="3cpWsn" id="45IuY9niQl3" role="3cpWs9">
-                    <property role="TrG5h" value="conceptToInstances" />
+                    <property role="TrG5h" value="deprecatedConceptToInstances" />
                     <node concept="3rvAFt" id="45IuY9niQl5" role="1tU5fm">
                       <node concept="3bZ5Sz" id="45IuY9niQVM" role="3rvQeY" />
                       <node concept="2I9FWS" id="45IuY9niQYH" role="3rvSg0" />
@@ -635,76 +631,184 @@
                     </node>
                   </node>
                 </node>
-                <node concept="3clFbF" id="45IuY9nemCg" role="3cqZAp">
-                  <node concept="2OqwBi" id="45IuY9nemCi" role="3clFbG">
-                    <node concept="2OqwBi" id="45IuY9nemCj" role="2Oq$k0">
-                      <node concept="2GrUjf" id="45IuY9nemCk" role="2Oq$k0">
-                        <ref role="2Gs0qQ" node="ah8HpWiNyP" resolve="m" />
+                <node concept="3cpWs8" id="2fzXGFm4X9S" role="3cqZAp">
+                  <node concept="3cpWsn" id="2fzXGFm4X9T" role="3cpWs9">
+                    <property role="TrG5h" value="deprecatedNodeToReferences" />
+                    <node concept="3rvAFt" id="2fzXGFm4X9U" role="1tU5fm">
+                      <node concept="3Tqbb2" id="2fzXGFm4XGk" role="3rvQeY" />
+                      <node concept="2I9FWS" id="2fzXGFm4X9W" role="3rvSg0" />
+                    </node>
+                    <node concept="2ShNRf" id="2fzXGFm4X9X" role="33vP2m">
+                      <node concept="3rGOSV" id="2fzXGFm4X9Y" role="2ShVmc">
+                        <node concept="3Tqbb2" id="2fzXGFm5dgI" role="3rHrn6" />
+                        <node concept="2I9FWS" id="2fzXGFm4Xa0" role="3rHtpV" />
+                        <node concept="3cmrfG" id="2fzXGFm4Xa1" role="3lNPQL">
+                          <property role="3cmrfH" value="1000" />
+                        </node>
                       </node>
-                      <node concept="2SmgA7" id="45IuY9nemCl" role="2OqNvi" />
                     </node>
-                    <node concept="2es0OD" id="45IuY9neo6v" role="2OqNvi">
-                      <node concept="1bVj0M" id="45IuY9neo6x" role="23t8la">
-                        <node concept="3clFbS" id="45IuY9neo6y" role="1bW5cS">
-                          <node concept="3clFbJ" id="45IuY9neops" role="3cqZAp">
-                            <node concept="3clFbS" id="45IuY9neopu" role="3clFbx">
-                              <node concept="3clFbJ" id="45IuY9nepid" role="3cqZAp">
-                                <node concept="3clFbS" id="45IuY9nepif" role="3clFbx">
-                                  <node concept="3clFbF" id="45IuY9nernl" role="3cqZAp">
-                                    <node concept="2OqwBi" id="45IuY9netBT" role="3clFbG">
-                                      <node concept="3EllGN" id="45IuY9nerQE" role="2Oq$k0">
-                                        <node concept="2OqwBi" id="45IuY9neski" role="3ElVtu">
-                                          <node concept="37vLTw" id="45IuY9nes1w" role="2Oq$k0">
-                                            <ref role="3cqZAo" node="1vMaDkE5o0c" resolve="it" />
-                                          </node>
-                                          <node concept="2yIwOk" id="45IuY9nesCh" role="2OqNvi" />
-                                        </node>
-                                        <node concept="37vLTw" id="45IuY9niWTb" role="3ElQJh">
-                                          <ref role="3cqZAo" node="45IuY9niQl3" resolve="conceptToInstances" />
-                                        </node>
+                  </node>
+                </node>
+                <node concept="2Gpval" id="7khq58wKdnD" role="3cqZAp">
+                  <node concept="2GrKxI" id="7khq58wKdnF" role="2Gsz3X">
+                    <property role="TrG5h" value="it" />
+                  </node>
+                  <node concept="2OqwBi" id="7khq58wKeuT" role="2GsD0m">
+                    <node concept="2GrUjf" id="7khq58wKej0" role="2Oq$k0">
+                      <ref role="2Gs0qQ" node="ah8HpWiNyP" resolve="m" />
+                    </node>
+                    <node concept="2SmgA7" id="7khq58wKfuL" role="2OqNvi" />
+                  </node>
+                  <node concept="3clFbS" id="7khq58wKdnJ" role="2LFqv$">
+                    <node concept="3clFbJ" id="45IuY9neops" role="3cqZAp">
+                      <node concept="3clFbS" id="45IuY9neopu" role="3clFbx">
+                        <node concept="3clFbJ" id="45IuY9nepid" role="3cqZAp">
+                          <node concept="3clFbS" id="45IuY9nepif" role="3clFbx">
+                            <node concept="3clFbF" id="45IuY9nernl" role="3cqZAp">
+                              <node concept="2OqwBi" id="45IuY9netBT" role="3clFbG">
+                                <node concept="3EllGN" id="45IuY9nerQE" role="2Oq$k0">
+                                  <node concept="2OqwBi" id="45IuY9neski" role="3ElVtu">
+                                    <node concept="2GrUjf" id="7khq58wKjvx" role="2Oq$k0">
+                                      <ref role="2Gs0qQ" node="7khq58wKdnF" resolve="it" />
+                                    </node>
+                                    <node concept="2yIwOk" id="45IuY9nesCh" role="2OqNvi" />
+                                  </node>
+                                  <node concept="37vLTw" id="45IuY9niWTb" role="3ElQJh">
+                                    <ref role="3cqZAo" node="45IuY9niQl3" resolve="deprecatedConceptToInstances" />
+                                  </node>
+                                </node>
+                                <node concept="TSZUe" id="45IuY9nev7r" role="2OqNvi">
+                                  <node concept="2GrUjf" id="7khq58wKiS4" role="25WWJ7">
+                                    <ref role="2Gs0qQ" node="7khq58wKdnF" resolve="it" />
+                                  </node>
+                                </node>
+                              </node>
+                            </node>
+                          </node>
+                          <node concept="2OqwBi" id="45IuY9nepX1" role="3clFbw">
+                            <node concept="37vLTw" id="45IuY9niWiJ" role="2Oq$k0">
+                              <ref role="3cqZAo" node="45IuY9niQl3" resolve="deprecatedConceptToInstances" />
+                            </node>
+                            <node concept="2Nt0df" id="45IuY9new58" role="2OqNvi">
+                              <node concept="2OqwBi" id="45IuY9newE0" role="38cxEo">
+                                <node concept="2GrUjf" id="7khq58wKjqF" role="2Oq$k0">
+                                  <ref role="2Gs0qQ" node="7khq58wKdnF" resolve="it" />
+                                </node>
+                                <node concept="2yIwOk" id="45IuY9newXu" role="2OqNvi" />
+                              </node>
+                            </node>
+                          </node>
+                          <node concept="9aQIb" id="45IuY9nex86" role="9aQIa">
+                            <node concept="3clFbS" id="45IuY9nex87" role="9aQI4">
+                              <node concept="3clFbF" id="45IuY9nexki" role="3cqZAp">
+                                <node concept="37vLTI" id="45IuY9neyrL" role="3clFbG">
+                                  <node concept="3EllGN" id="45IuY9nexkk" role="37vLTJ">
+                                    <node concept="2OqwBi" id="45IuY9nexkl" role="3ElVtu">
+                                      <node concept="2GrUjf" id="7khq58wKj0V" role="2Oq$k0">
+                                        <ref role="2Gs0qQ" node="7khq58wKdnF" resolve="it" />
                                       </node>
-                                      <node concept="TSZUe" id="45IuY9nev7r" role="2OqNvi">
-                                        <node concept="37vLTw" id="45IuY9nevrX" role="25WWJ7">
-                                          <ref role="3cqZAo" node="1vMaDkE5o0c" resolve="it" />
-                                        </node>
+                                      <node concept="2yIwOk" id="45IuY9nexkn" role="2OqNvi" />
+                                    </node>
+                                    <node concept="37vLTw" id="45IuY9niXrj" role="3ElQJh">
+                                      <ref role="3cqZAo" node="45IuY9niQl3" resolve="deprecatedConceptToInstances" />
+                                    </node>
+                                  </node>
+                                  <node concept="2ShNRf" id="45IuY9neC7k" role="37vLTx">
+                                    <node concept="Tc6Ow" id="45IuY9neC7l" role="2ShVmc">
+                                      <node concept="3Tqbb2" id="45IuY9neC7m" role="HW$YZ" />
+                                      <node concept="2GrUjf" id="7khq58wKiK1" role="HW$Y0">
+                                        <ref role="2Gs0qQ" node="7khq58wKdnF" resolve="it" />
                                       </node>
                                     </node>
                                   </node>
                                 </node>
-                                <node concept="2OqwBi" id="45IuY9nepX1" role="3clFbw">
-                                  <node concept="37vLTw" id="45IuY9niWiJ" role="2Oq$k0">
-                                    <ref role="3cqZAo" node="45IuY9niQl3" resolve="conceptToInstances" />
-                                  </node>
-                                  <node concept="2Nt0df" id="45IuY9new58" role="2OqNvi">
-                                    <node concept="2OqwBi" id="45IuY9newE0" role="38cxEo">
-                                      <node concept="37vLTw" id="45IuY9newko" role="2Oq$k0">
-                                        <ref role="3cqZAo" node="1vMaDkE5o0c" resolve="it" />
+                              </node>
+                            </node>
+                          </node>
+                        </node>
+                      </node>
+                      <node concept="1rXfSq" id="45IuY9neo6$" role="3clFbw">
+                        <ref role="37wK5l" node="7LZ1KAVTsur" resolve="conceptIsDeprecatedForLongTime" />
+                        <node concept="2GrUjf" id="7khq58wKiO4" role="37wK5m">
+                          <ref role="2Gs0qQ" node="7khq58wKdnF" resolve="it" />
+                        </node>
+                        <node concept="37vLTw" id="45IuY9neo6A" role="37wK5m">
+                          <ref role="3cqZAo" node="7LZ1KAVU66V" resolve="deprecationTime" />
+                        </node>
+                      </node>
+                    </node>
+                    <node concept="3clFbJ" id="2fzXGFm4Z1S" role="3cqZAp">
+                      <node concept="3clFbS" id="2fzXGFm4Z1T" role="3clFbx">
+                        <node concept="3cpWs8" id="2fzXGFm5fL0" role="3cqZAp">
+                          <node concept="3cpWsn" id="2fzXGFm5fL1" role="3cpWs9">
+                            <property role="TrG5h" value="deprecatedReferencedNodes" />
+                            <node concept="2I9FWS" id="7khq58wJIDG" role="1tU5fm" />
+                            <node concept="1rXfSq" id="2fzXGFm5fL2" role="33vP2m">
+                              <ref role="37wK5l" node="2fzXGFm50iN" resolve="getReferencedDeprecatedNodesForLongTime" />
+                              <node concept="2GrUjf" id="7khq58wKj4Y" role="37wK5m">
+                                <ref role="2Gs0qQ" node="7khq58wKdnF" resolve="it" />
+                              </node>
+                              <node concept="37vLTw" id="2fzXGFm5fL4" role="37wK5m">
+                                <ref role="3cqZAo" node="7LZ1KAVU66V" resolve="deprecationTime" />
+                              </node>
+                            </node>
+                          </node>
+                        </node>
+                        <node concept="2Gpval" id="7khq58wJJom" role="3cqZAp">
+                          <node concept="2GrKxI" id="7khq58wJJoo" role="2Gsz3X">
+                            <property role="TrG5h" value="deprecatedReferencedNode" />
+                          </node>
+                          <node concept="37vLTw" id="7khq58wJL0q" role="2GsD0m">
+                            <ref role="3cqZAo" node="2fzXGFm5fL1" resolve="deprecatedReferencedNodes" />
+                          </node>
+                          <node concept="3clFbS" id="7khq58wJJos" role="2LFqv$">
+                            <node concept="3clFbJ" id="2fzXGFm4Z1U" role="3cqZAp">
+                              <node concept="3clFbS" id="2fzXGFm4Z1V" role="3clFbx">
+                                <node concept="3clFbF" id="2fzXGFm4Z1W" role="3cqZAp">
+                                  <node concept="2OqwBi" id="2fzXGFm4Z1X" role="3clFbG">
+                                    <node concept="3EllGN" id="2fzXGFm4Z1Y" role="2Oq$k0">
+                                      <node concept="2GrUjf" id="7khq58wJMlW" role="3ElVtu">
+                                        <ref role="2Gs0qQ" node="7khq58wJJoo" resolve="deprecatedReferencedNode" />
+                                      </node>
+                                      <node concept="37vLTw" id="2fzXGFm4Z22" role="3ElQJh">
+                                        <ref role="3cqZAo" node="2fzXGFm4X9T" resolve="deprecatedNodeToReferences" />
+                                      </node>
+                                    </node>
+                                    <node concept="TSZUe" id="2fzXGFm4Z23" role="2OqNvi">
+                                      <node concept="2GrUjf" id="7khq58wKjzx" role="25WWJ7">
+                                        <ref role="2Gs0qQ" node="7khq58wKdnF" resolve="it" />
                                       </node>
-                                      <node concept="2yIwOk" id="45IuY9newXu" role="2OqNvi" />
                                     </node>
                                   </node>
                                 </node>
-                                <node concept="9aQIb" id="45IuY9nex86" role="9aQIa">
-                                  <node concept="3clFbS" id="45IuY9nex87" role="9aQI4">
-                                    <node concept="3clFbF" id="45IuY9nexki" role="3cqZAp">
-                                      <node concept="37vLTI" id="45IuY9neyrL" role="3clFbG">
-                                        <node concept="3EllGN" id="45IuY9nexkk" role="37vLTJ">
-                                          <node concept="2OqwBi" id="45IuY9nexkl" role="3ElVtu">
-                                            <node concept="37vLTw" id="45IuY9nexkm" role="2Oq$k0">
-                                              <ref role="3cqZAo" node="1vMaDkE5o0c" resolve="it" />
-                                            </node>
-                                            <node concept="2yIwOk" id="45IuY9nexkn" role="2OqNvi" />
-                                          </node>
-                                          <node concept="37vLTw" id="45IuY9niXrj" role="3ElQJh">
-                                            <ref role="3cqZAo" node="45IuY9niQl3" resolve="conceptToInstances" />
-                                          </node>
+                              </node>
+                              <node concept="2OqwBi" id="2fzXGFm4Z25" role="3clFbw">
+                                <node concept="37vLTw" id="2fzXGFm4Z26" role="2Oq$k0">
+                                  <ref role="3cqZAo" node="2fzXGFm4X9T" resolve="deprecatedNodeToReferences" />
+                                </node>
+                                <node concept="2Nt0df" id="2fzXGFm4Z27" role="2OqNvi">
+                                  <node concept="2GrUjf" id="7khq58wJLIl" role="38cxEo">
+                                    <ref role="2Gs0qQ" node="7khq58wJJoo" resolve="deprecatedReferencedNode" />
+                                  </node>
+                                </node>
+                              </node>
+                              <node concept="9aQIb" id="2fzXGFm4Z2b" role="9aQIa">
+                                <node concept="3clFbS" id="2fzXGFm4Z2c" role="9aQI4">
+                                  <node concept="3clFbF" id="2fzXGFm4Z2d" role="3cqZAp">
+                                    <node concept="37vLTI" id="2fzXGFm4Z2e" role="3clFbG">
+                                      <node concept="3EllGN" id="2fzXGFm4Z2f" role="37vLTJ">
+                                        <node concept="2GrUjf" id="7khq58wJMJp" role="3ElVtu">
+                                          <ref role="2Gs0qQ" node="7khq58wJJoo" resolve="deprecatedReferencedNode" />
                                         </node>
-                                        <node concept="2ShNRf" id="45IuY9neC7k" role="37vLTx">
-                                          <node concept="Tc6Ow" id="45IuY9neC7l" role="2ShVmc">
-                                            <node concept="3Tqbb2" id="45IuY9neC7m" role="HW$YZ" />
-                                            <node concept="37vLTw" id="45IuY9neC7n" role="HW$Y0">
-                                              <ref role="3cqZAo" node="1vMaDkE5o0c" resolve="it" />
-                                            </node>
+                                        <node concept="37vLTw" id="2fzXGFm4Z2j" role="3ElQJh">
+                                          <ref role="3cqZAo" node="2fzXGFm4X9T" resolve="deprecatedNodeToReferences" />
+                                        </node>
+                                      </node>
+                                      <node concept="2ShNRf" id="2fzXGFm4Z2k" role="37vLTx">
+                                        <node concept="Tc6Ow" id="2fzXGFm4Z2l" role="2ShVmc">
+                                          <node concept="3Tqbb2" id="2fzXGFm4Z2m" role="HW$YZ" />
+                                          <node concept="2GrUjf" id="7khq58wKjBx" role="HW$Y0">
+                                            <ref role="2Gs0qQ" node="7khq58wKdnF" resolve="it" />
                                           </node>
                                         </node>
                                       </node>
@@ -713,20 +817,16 @@
                                 </node>
                               </node>
                             </node>
-                            <node concept="1rXfSq" id="45IuY9neo6$" role="3clFbw">
-                              <ref role="37wK5l" node="7LZ1KAVTsur" resolve="conceptIsDeprecatedForLongTime" />
-                              <node concept="37vLTw" id="45IuY9neo6_" role="37wK5m">
-                                <ref role="3cqZAo" node="1vMaDkE5o0c" resolve="it" />
-                              </node>
-                              <node concept="37vLTw" id="45IuY9neo6A" role="37wK5m">
-                                <ref role="3cqZAo" node="7LZ1KAVU66V" resolve="deprecationTime" />
-                              </node>
-                            </node>
                           </node>
                         </node>
-                        <node concept="gl6BB" id="1vMaDkE5o0c" role="1bW2Oz">
-                          <property role="TrG5h" value="it" />
-                          <node concept="2jxLKc" id="1vMaDkE5o0d" role="1tU5fm" />
+                      </node>
+                      <node concept="1rXfSq" id="2fzXGFm4Z2o" role="3clFbw">
+                        <ref role="37wK5l" node="2fzXGFlf9qe" resolve="nodeReferencesDeprecatedNodeForLongTime" />
+                        <node concept="2GrUjf" id="7khq58wKj91" role="37wK5m">
+                          <ref role="2Gs0qQ" node="7khq58wKdnF" resolve="it" />
+                        </node>
+                        <node concept="37vLTw" id="2fzXGFm4Z2q" role="37wK5m">
+                          <ref role="3cqZAo" node="7LZ1KAVU66V" resolve="deprecationTime" />
                         </node>
                       </node>
                     </node>
@@ -737,7 +837,7 @@
                   <node concept="3clFbS" id="ah8HpWjpZZ" role="3clFbx">
                     <node concept="3cpWs8" id="45IuY9nfedL" role="3cqZAp">
                       <node concept="3cpWsn" id="45IuY9nfedM" role="3cpWs9">
-                        <property role="TrG5h" value="deprecatedTypes" />
+                        <property role="TrG5h" value="deprecatedConceptResults" />
                         <node concept="A3Dl8" id="45IuY9nfeb3" role="1tU5fm">
                           <node concept="3Tqbb2" id="45IuY9nfeb6" role="A3Ik2">
                             <ref role="ehGHo" to="3idh:ah8HpWiuVV" resolve="DeprecatedConceptResult" />
@@ -745,66 +845,11 @@
                         </node>
                         <node concept="2OqwBi" id="45IuY9nfedN" role="33vP2m">
                           <node concept="37vLTw" id="45IuY9niY3O" role="2Oq$k0">
-                            <ref role="3cqZAo" node="45IuY9niQl3" resolve="conceptToInstances" />
+                            <ref role="3cqZAo" node="45IuY9niQl3" resolve="deprecatedConceptToInstances" />
                           </node>
                           <node concept="3$u5V9" id="45IuY9nfedP" role="2OqNvi">
                             <node concept="1bVj0M" id="45IuY9nfedQ" role="23t8la">
                               <node concept="3clFbS" id="45IuY9nfedR" role="1bW5cS">
-                                <node concept="3SKdUt" id="dIZf5toDGY" role="3cqZAp">
-                                  <node concept="1PaTwC" id="dIZf5toDGZ" role="1aUNEU">
-                                    <node concept="3oM_SD" id="dIZf5toDQm" role="1PaTwD">
-                                      <property role="3oM_SC" value="Taking" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toDY_" role="1PaTwD">
-                                      <property role="3oM_SC" value="first" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toDYC" role="1PaTwD">
-                                      <property role="3oM_SC" value="50" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toE6T" role="1PaTwD">
-                                      <property role="3oM_SC" value="to" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toEfb" role="1PaTwD">
-                                      <property role="3oM_SC" value="not" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toEny" role="1PaTwD">
-                                      <property role="3oM_SC" value="slow" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toEEN" role="1PaTwD">
-                                      <property role="3oM_SC" value="down" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toEEV" role="1PaTwD">
-                                      <property role="3oM_SC" value="editor" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toEMu" role="1PaTwD">
-                                      <property role="3oM_SC" value="in" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toEMC" role="1PaTwD">
-                                      <property role="3oM_SC" value="case" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toEMN" role="1PaTwD">
-                                      <property role="3oM_SC" value="there" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toEMZ" role="1PaTwD">
-                                      <property role="3oM_SC" value="is" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toEZ8" role="1PaTwD">
-                                      <property role="3oM_SC" value="a" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toEZm" role="1PaTwD">
-                                      <property role="3oM_SC" value="lot" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toEZ_" role="1PaTwD">
-                                      <property role="3oM_SC" value="of" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toEZP" role="1PaTwD">
-                                      <property role="3oM_SC" value="similar" />
-                                    </node>
-                                    <node concept="3oM_SD" id="dIZf5toF8j" role="1PaTwD">
-                                      <property role="3oM_SC" value="nodes" />
-                                    </node>
-                                  </node>
-                                </node>
                                 <node concept="3cpWs8" id="45IuY9nfedS" role="3cqZAp">
                                   <node concept="3cpWsn" id="45IuY9nfedT" role="3cpWs9">
                                     <property role="TrG5h" value="deprecatedNodes" />
@@ -814,18 +859,11 @@
                                       </node>
                                     </node>
                                     <node concept="2OqwBi" id="45IuY9nfedW" role="33vP2m">
-                                      <node concept="2OqwBi" id="45IuY9nfNcs" role="2Oq$k0">
-                                        <node concept="2OqwBi" id="45IuY9nfedX" role="2Oq$k0">
-                                          <node concept="37vLTw" id="45IuY9nfedY" role="2Oq$k0">
-                                            <ref role="3cqZAo" node="1vMaDkE5o0g" resolve="it" />
-                                          </node>
-                                          <node concept="3AV6Ez" id="45IuY9nfedZ" role="2OqNvi" />
-                                        </node>
-                                        <node concept="8ftyA" id="45IuY9nfOr$" role="2OqNvi">
-                                          <node concept="3cmrfG" id="45IuY9nfOHR" role="8f$Dv">
-                                            <property role="3cmrfH" value="50" />
-                                          </node>
+                                      <node concept="2OqwBi" id="45IuY9nfedX" role="2Oq$k0">
+                                        <node concept="37vLTw" id="45IuY9nfedY" role="2Oq$k0">
+                                          <ref role="3cqZAo" node="1vMaDkE5o0g" resolve="it" />
                                         </node>
+                                        <node concept="3AV6Ez" id="45IuY9nfedZ" role="2OqNvi" />
                                       </node>
                                       <node concept="3$u5V9" id="45IuY9nfee0" role="2OqNvi">
                                         <node concept="1bVj0M" id="45IuY9nfee1" role="23t8la">
@@ -894,6 +932,101 @@
                         </node>
                       </node>
                     </node>
+                    <node concept="3cpWs8" id="2fzXGFm5nda" role="3cqZAp">
+                      <node concept="3cpWsn" id="2fzXGFm5ndb" role="3cpWs9">
+                        <property role="TrG5h" value="deprecatedReferencedTargetNodeResults" />
+                        <node concept="A3Dl8" id="2fzXGFm5ndc" role="1tU5fm">
+                          <node concept="3Tqbb2" id="2fzXGFm5ndd" role="A3Ik2">
+                            <ref role="ehGHo" to="3idh:2fzXGFm3KyA" resolve="DeprecatedReferenceTargetResult" />
+                          </node>
+                        </node>
+                        <node concept="2OqwBi" id="2fzXGFm5nde" role="33vP2m">
+                          <node concept="37vLTw" id="2fzXGFm5ndf" role="2Oq$k0">
+                            <ref role="3cqZAo" node="2fzXGFm4X9T" resolve="deprecatedNodeToReferences" />
+                          </node>
+                          <node concept="3$u5V9" id="2fzXGFm5ndg" role="2OqNvi">
+                            <node concept="1bVj0M" id="2fzXGFm5ndh" role="23t8la">
+                              <node concept="3clFbS" id="2fzXGFm5ndi" role="1bW5cS">
+                                <node concept="3cpWs8" id="2fzXGFm5ndA" role="3cqZAp">
+                                  <node concept="3cpWsn" id="2fzXGFm5ndB" role="3cpWs9">
+                                    <property role="TrG5h" value="deprecatedNodes" />
+                                    <node concept="A3Dl8" id="2fzXGFm5ndC" role="1tU5fm">
+                                      <node concept="3Tqbb2" id="2fzXGFm5ndD" role="A3Ik2">
+                                        <ref role="ehGHo" to="3idh:7LZ1KAVUTVU" resolve="DeprecatedNodeResult" />
+                                      </node>
+                                    </node>
+                                    <node concept="2OqwBi" id="2fzXGFm5ndE" role="33vP2m">
+                                      <node concept="2OqwBi" id="2fzXGFm5ndG" role="2Oq$k0">
+                                        <node concept="37vLTw" id="2fzXGFm5ndH" role="2Oq$k0">
+                                          <ref role="3cqZAo" node="2fzXGFm5ne9" resolve="it" />
+                                        </node>
+                                        <node concept="3AV6Ez" id="2fzXGFm5ndI" role="2OqNvi" />
+                                      </node>
+                                      <node concept="3$u5V9" id="2fzXGFm5ndL" role="2OqNvi">
+                                        <node concept="1bVj0M" id="2fzXGFm5ndM" role="23t8la">
+                                          <node concept="3clFbS" id="2fzXGFm5ndN" role="1bW5cS">
+                                            <node concept="3clFbF" id="2fzXGFm5ndO" role="3cqZAp">
+                                              <node concept="2pJPEk" id="2fzXGFm5ndP" role="3clFbG">
+                                                <node concept="2pJPED" id="2fzXGFm5ndQ" role="2pJPEn">
+                                                  <ref role="2pJxaS" to="3idh:7LZ1KAVUTVU" resolve="DeprecatedNodeResult" />
+                                                  <node concept="2pIpSj" id="2fzXGFm5ndR" role="2pJxcM">
+                                                    <ref role="2pIpSl" to="3idh:7LZ1KAVUTVV" resolve="node" />
+                                                    <node concept="36biLy" id="2fzXGFm5ndS" role="28nt2d">
+                                                      <node concept="37vLTw" id="2fzXGFm5ndT" role="36biLW">
+                                                        <ref role="3cqZAo" node="2fzXGFm5ndU" resolve="it2" />
+                                                      </node>
+                                                    </node>
+                                                  </node>
+                                                </node>
+                                              </node>
+                                            </node>
+                                          </node>
+                                          <node concept="gl6BB" id="2fzXGFm5ndU" role="1bW2Oz">
+                                            <property role="TrG5h" value="it2" />
+                                            <node concept="2jxLKc" id="2fzXGFm5ndV" role="1tU5fm" />
+                                          </node>
+                                        </node>
+                                      </node>
+                                    </node>
+                                  </node>
+                                </node>
+                                <node concept="3cpWs6" id="2fzXGFm5ndW" role="3cqZAp">
+                                  <node concept="2pJPEk" id="2fzXGFm5ndX" role="3cqZAk">
+                                    <node concept="2pJPED" id="2fzXGFm5ndY" role="2pJPEn">
+                                      <ref role="2pJxaS" to="3idh:2fzXGFm3KyA" resolve="DeprecatedReferenceTargetResult" />
+                                      <node concept="2pIpSj" id="2fzXGFm5ndZ" role="2pJxcM">
+                                        <ref role="2pIpSl" to="3idh:2fzXGFm3KyB" resolve="targetNode" />
+                                        <node concept="36biLy" id="2fzXGFm5ne0" role="28nt2d">
+                                          <node concept="2OqwBi" id="2fzXGFm5pOs" role="36biLW">
+                                            <node concept="37vLTw" id="2fzXGFm5ne3" role="2Oq$k0">
+                                              <ref role="3cqZAo" node="2fzXGFm5ne9" resolve="it" />
+                                            </node>
+                                            <node concept="3AY5_j" id="2fzXGFm5qDY" role="2OqNvi" />
+                                          </node>
+                                        </node>
+                                      </node>
+                                      <node concept="2pIpSj" id="2fzXGFm5ne6" role="2pJxcM">
+                                        <ref role="2pIpSl" to="3idh:2fzXGFm3KyC" resolve="deprecatedReferringNodes" />
+                                        <node concept="36biLy" id="2fzXGFm5ne7" role="28nt2d">
+                                          <node concept="37vLTw" id="2fzXGFm5ne8" role="36biLW">
+                                            <ref role="3cqZAo" node="2fzXGFm5ndB" resolve="deprecatedNodes" />
+                                          </node>
+                                        </node>
+                                      </node>
+                                    </node>
+                                  </node>
+                                </node>
+                              </node>
+                              <node concept="gl6BB" id="2fzXGFm5ne9" role="1bW2Oz">
+                                <property role="TrG5h" value="it" />
+                                <node concept="2jxLKc" id="2fzXGFm5nea" role="1tU5fm" />
+                              </node>
+                            </node>
+                          </node>
+                        </node>
+                      </node>
+                    </node>
+                    <node concept="3clFbH" id="2fzXGFm5m4S" role="3cqZAp" />
                     <node concept="3clFbF" id="ah8HpWjsQ5" role="3cqZAp">
                       <node concept="2OqwBi" id="ah8HpWjufv" role="3clFbG">
                         <node concept="37vLTw" id="ah8HpWjsQ3" role="2Oq$k0">
@@ -915,10 +1048,18 @@
                                 </node>
                               </node>
                               <node concept="2pIpSj" id="45IuY9njgW5" role="2pJxcM">
-                                <ref role="2pIpSl" to="3idh:ah8HpWiuVW" resolve="deprecatedType" />
+                                <ref role="2pIpSl" to="3idh:ah8HpWiuVW" resolve="deprecatedConceptResults" />
                                 <node concept="36biLy" id="45IuY9njgW6" role="28nt2d">
                                   <node concept="37vLTw" id="45IuY9njgW7" role="36biLW">
-                                    <ref role="3cqZAo" node="45IuY9nfedM" resolve="deprecatedTypes" />
+                                    <ref role="3cqZAo" node="45IuY9nfedM" resolve="deprecatedConceptResults" />
+                                  </node>
+                                </node>
+                              </node>
+                              <node concept="2pIpSj" id="2fzXGFm5qTO" role="2pJxcM">
+                                <ref role="2pIpSl" to="3idh:2fzXGFm4ppM" resolve="deprecatedRefereceTargetResults" />
+                                <node concept="36biLy" id="2fzXGFm5qXu" role="28nt2d">
+                                  <node concept="37vLTw" id="2fzXGFm5r1K" role="36biLW">
+                                    <ref role="3cqZAo" node="2fzXGFm5ndb" resolve="deprecatedReferencedTargetNodeResults" />
                                   </node>
                                 </node>
                               </node>
@@ -928,11 +1069,19 @@
                       </node>
                     </node>
                   </node>
-                  <node concept="2OqwBi" id="ah8HpWjrqD" role="3clFbw">
-                    <node concept="37vLTw" id="45IuY9niXLf" role="2Oq$k0">
-                      <ref role="3cqZAo" node="45IuY9niQl3" resolve="conceptToInstances" />
+                  <node concept="22lmx$" id="2fzXGFm5jFW" role="3clFbw">
+                    <node concept="2OqwBi" id="ah8HpWjrqD" role="3uHU7B">
+                      <node concept="37vLTw" id="45IuY9niXLf" role="2Oq$k0">
+                        <ref role="3cqZAo" node="45IuY9niQl3" resolve="deprecatedConceptToInstances" />
+                      </node>
+                      <node concept="3GX2aA" id="45IuY9nf2EA" role="2OqNvi" />
+                    </node>
+                    <node concept="2OqwBi" id="2fzXGFm5jZN" role="3uHU7w">
+                      <node concept="37vLTw" id="2fzXGFm5jZO" role="2Oq$k0">
+                        <ref role="3cqZAo" node="2fzXGFm4X9T" resolve="deprecatedNodeToReferences" />
+                      </node>
+                      <node concept="3GX2aA" id="2fzXGFm5jZP" role="2OqNvi" />
                     </node>
-                    <node concept="3GX2aA" id="45IuY9nf2EA" role="2OqNvi" />
                   </node>
                 </node>
               </node>
@@ -1132,6 +1281,166 @@
         </node>
       </node>
     </node>
+    <node concept="2tJIrI" id="2fzXGFleYHc" role="jymVt" />
+    <node concept="2YIFZL" id="2fzXGFlf9qe" role="jymVt">
+      <property role="TrG5h" value="nodeReferencesDeprecatedNodeForLongTime" />
+      <node concept="3clFbS" id="2fzXGFlf9qh" role="3clF47">
+        <node concept="2Gpval" id="7khq58wJhlQ" role="3cqZAp">
+          <node concept="2GrKxI" id="7khq58wJhlR" role="2Gsz3X">
+            <property role="TrG5h" value="reference" />
+          </node>
+          <node concept="2OqwBi" id="7khq58wJhlS" role="2GsD0m">
+            <node concept="2JrnkZ" id="7khq58wJhlT" role="2Oq$k0">
+              <node concept="37vLTw" id="7khq58wJhlU" role="2JrQYb">
+                <ref role="3cqZAo" node="2fzXGFlf9XE" resolve="crtNode" />
+              </node>
+            </node>
+            <node concept="liA8E" id="7khq58wJhlV" role="2OqNvi">
+              <ref role="37wK5l" to="mhbf:~SNode.getReferences()" resolve="getReferences" />
+            </node>
+          </node>
+          <node concept="3clFbS" id="7khq58wJhlW" role="2LFqv$">
+            <node concept="3cpWs8" id="7khq58wJhlX" role="3cqZAp">
+              <node concept="3cpWsn" id="7khq58wJhlY" role="3cpWs9">
+                <property role="TrG5h" value="targetNode" />
+                <node concept="3Tqbb2" id="7khq58wJhlZ" role="1tU5fm" />
+                <node concept="2OqwBi" id="7khq58wJhm0" role="33vP2m">
+                  <node concept="2GrUjf" id="7khq58wJhm1" role="2Oq$k0">
+                    <ref role="2Gs0qQ" node="7khq58wJhlR" resolve="reference" />
+                  </node>
+                  <node concept="liA8E" id="7khq58wJhm2" role="2OqNvi">
+                    <ref role="37wK5l" to="mhbf:~SReference.getTargetNode()" resolve="getTargetNode" />
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbJ" id="7khq58wJhm3" role="3cqZAp">
+              <node concept="3clFbS" id="7khq58wJhm4" role="3clFbx">
+                <node concept="3cpWs6" id="7khq58wJhm5" role="3cqZAp">
+                  <node concept="3clFbT" id="7khq58wJi6f" role="3cqZAk">
+                    <property role="3clFbU" value="true" />
+                  </node>
+                </node>
+              </node>
+              <node concept="2YIFZM" id="7khq58wJhm7" role="3clFbw">
+                <ref role="1Pybhc" node="3dqUbgQpGix" resolve="DeprecationDateComputingUtils" />
+                <ref role="37wK5l" node="3dqUbgQpF3C" resolve="checkNodeIsDeprecatedForLongTime" />
+                <node concept="37vLTw" id="7khq58wJhm8" role="37wK5m">
+                  <ref role="3cqZAo" node="7khq58wJhlY" resolve="targetNode" />
+                </node>
+                <node concept="37vLTw" id="7khq58wJhm9" role="37wK5m">
+                  <ref role="3cqZAo" node="2fzXGFlfa7g" resolve="deprecationTime" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbF" id="7khq58wJhma" role="3cqZAp">
+          <node concept="3clFbT" id="7khq58wJiQg" role="3clFbG" />
+        </node>
+      </node>
+      <node concept="3Tm6S6" id="2fzXGFlf8yO" role="1B3o_S" />
+      <node concept="10P_77" id="2fzXGFlf9os" role="3clF45" />
+      <node concept="37vLTG" id="2fzXGFlf9XE" role="3clF46">
+        <property role="TrG5h" value="crtNode" />
+        <node concept="3Tqbb2" id="2fzXGFlf9XD" role="1tU5fm" />
+      </node>
+      <node concept="37vLTG" id="2fzXGFlfa7g" role="3clF46">
+        <property role="TrG5h" value="deprecationTime" />
+        <node concept="3uibUv" id="2fzXGFlfa7h" role="1tU5fm">
+          <ref role="3uigEE" to="28m1:~LocalDate" resolve="LocalDate" />
+        </node>
+      </node>
+    </node>
+    <node concept="2tJIrI" id="2fzXGFm51mG" role="jymVt" />
+    <node concept="2YIFZL" id="2fzXGFm50iN" role="jymVt">
+      <property role="TrG5h" value="getReferencedDeprecatedNodesForLongTime" />
+      <node concept="3clFbS" id="2fzXGFm50iO" role="3clF47">
+        <node concept="3cpWs8" id="7khq58wJlrz" role="3cqZAp">
+          <node concept="3cpWsn" id="7khq58wJlrA" role="3cpWs9">
+            <property role="TrG5h" value="res" />
+            <node concept="2I9FWS" id="7khq58wJlrx" role="1tU5fm" />
+            <node concept="2ShNRf" id="7khq58wJma$" role="33vP2m">
+              <node concept="Tc6Ow" id="7khq58wJqI7" role="2ShVmc" />
+            </node>
+          </node>
+        </node>
+        <node concept="2Gpval" id="2fzXGFm50iP" role="3cqZAp">
+          <node concept="2GrKxI" id="2fzXGFm50iQ" role="2Gsz3X">
+            <property role="TrG5h" value="reference" />
+          </node>
+          <node concept="2OqwBi" id="2fzXGFm50iR" role="2GsD0m">
+            <node concept="2JrnkZ" id="2fzXGFm50iS" role="2Oq$k0">
+              <node concept="37vLTw" id="2fzXGFm50iT" role="2JrQYb">
+                <ref role="3cqZAo" node="2fzXGFm50jd" resolve="crtNode" />
+              </node>
+            </node>
+            <node concept="liA8E" id="2fzXGFm50iU" role="2OqNvi">
+              <ref role="37wK5l" to="mhbf:~SNode.getReferences()" resolve="getReferences" />
+            </node>
+          </node>
+          <node concept="3clFbS" id="2fzXGFm50iV" role="2LFqv$">
+            <node concept="3cpWs8" id="2fzXGFm50iW" role="3cqZAp">
+              <node concept="3cpWsn" id="2fzXGFm50iX" role="3cpWs9">
+                <property role="TrG5h" value="targetNode" />
+                <node concept="3Tqbb2" id="2fzXGFm50iY" role="1tU5fm" />
+                <node concept="2OqwBi" id="2fzXGFm50iZ" role="33vP2m">
+                  <node concept="2GrUjf" id="2fzXGFm50j0" role="2Oq$k0">
+                    <ref role="2Gs0qQ" node="2fzXGFm50iQ" resolve="reference" />
+                  </node>
+                  <node concept="liA8E" id="2fzXGFm50j1" role="2OqNvi">
+                    <ref role="37wK5l" to="mhbf:~SReference.getTargetNode()" resolve="getTargetNode" />
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbJ" id="2fzXGFm50j2" role="3cqZAp">
+              <node concept="3clFbS" id="2fzXGFm50j3" role="3clFbx">
+                <node concept="3clFbF" id="7khq58wJtX7" role="3cqZAp">
+                  <node concept="2OqwBi" id="7khq58wJwzo" role="3clFbG">
+                    <node concept="37vLTw" id="7khq58wJtX4" role="2Oq$k0">
+                      <ref role="3cqZAo" node="7khq58wJlrA" resolve="res" />
+                    </node>
+                    <node concept="TSZUe" id="7khq58wJBs8" role="2OqNvi">
+                      <node concept="37vLTw" id="7khq58wJCpA" role="25WWJ7">
+                        <ref role="3cqZAo" node="2fzXGFm50iX" resolve="targetNode" />
+                      </node>
+                    </node>
+                  </node>
+                </node>
+              </node>
+              <node concept="2YIFZM" id="2fzXGFm50j6" role="3clFbw">
+                <ref role="1Pybhc" node="3dqUbgQpGix" resolve="DeprecationDateComputingUtils" />
+                <ref role="37wK5l" node="3dqUbgQpF3C" resolve="checkNodeIsDeprecatedForLongTime" />
+                <node concept="37vLTw" id="2fzXGFm50j7" role="37wK5m">
+                  <ref role="3cqZAo" node="2fzXGFm50iX" resolve="targetNode" />
+                </node>
+                <node concept="37vLTw" id="2fzXGFm50j8" role="37wK5m">
+                  <ref role="3cqZAo" node="2fzXGFm50jf" resolve="deprecationTime" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="3clFbF" id="2fzXGFm5cjk" role="3cqZAp">
+          <node concept="37vLTw" id="7khq58wJrpw" role="3clFbG">
+            <ref role="3cqZAo" node="7khq58wJlrA" resolve="res" />
+          </node>
+        </node>
+      </node>
+      <node concept="3Tm6S6" id="2fzXGFm50jb" role="1B3o_S" />
+      <node concept="2I9FWS" id="7khq58wJjQS" role="3clF45" />
+      <node concept="37vLTG" id="2fzXGFm50jd" role="3clF46">
+        <property role="TrG5h" value="crtNode" />
+        <node concept="3Tqbb2" id="2fzXGFm50je" role="1tU5fm" />
+      </node>
+      <node concept="37vLTG" id="2fzXGFm50jf" role="3clF46">
+        <property role="TrG5h" value="deprecationTime" />
+        <node concept="3uibUv" id="2fzXGFm50jg" role="1tU5fm">
+          <ref role="3uigEE" to="28m1:~LocalDate" resolve="LocalDate" />
+        </node>
+      </node>
+    </node>
     <node concept="2tJIrI" id="45IuY9ndZt$" role="jymVt" />
     <node concept="2YIFZL" id="45IuY9ndYjB" role="jymVt">
       <property role="TrG5h" value="conceptIsCompletelyValid" />
diff --git a/code/languages/org.mpsqa.deprecated/languages/org.mpsqa.deprecated/models/org.mpsqa.deprecated.structure.mps b/code/languages/org.mpsqa.deprecated/languages/org.mpsqa.deprecated/models/org.mpsqa.deprecated.structure.mps
index 1b714652..e1e9a7d2 100644
--- a/code/languages/org.mpsqa.deprecated/languages/org.mpsqa.deprecated/models/org.mpsqa.deprecated.structure.mps
+++ b/code/languages/org.mpsqa.deprecated/languages/org.mpsqa.deprecated/models/org.mpsqa.deprecated.structure.mps
@@ -98,10 +98,17 @@
     <node concept="1TJgyj" id="ah8HpWiuVW" role="1TKVEi">
       <property role="IQ2ns" value="184967364302466812" />
       <property role="20lmBu" value="fLJjDmT/aggregation" />
-      <property role="20kJfa" value="deprecatedType" />
+      <property role="20kJfa" value="deprecatedConceptResults" />
       <property role="20lbJX" value="fLJekj5/_0__n" />
       <ref role="20lvS9" node="ah8HpWiuVV" resolve="DeprecatedConceptResult" />
     </node>
+    <node concept="1TJgyj" id="2fzXGFm4ppM" role="1TKVEi">
+      <property role="IQ2ns" value="2586181962076100210" />
+      <property role="20lmBu" value="fLJjDmT/aggregation" />
+      <property role="20kJfa" value="deprecatedRefereceTargetResults" />
+      <property role="20lbJX" value="fLJekj5/_0__n" />
+      <ref role="20lvS9" node="2fzXGFm3KyA" resolve="DeprecatedReferenceTargetResult" />
+    </node>
     <node concept="1TJgyi" id="3imng2mXeQS" role="1TKVEl">
       <property role="IQ2nx" value="3789318393592868280" />
       <property role="TrG5h" value="modelName" />
@@ -157,5 +164,27 @@
       <ref role="PrY4T" to="tpck:h0TrEE$" resolve="INamedConcept" />
     </node>
   </node>
+  <node concept="1TIwiD" id="2fzXGFm3KyA">
+    <property role="EcuMT" value="2586181962075932838" />
+    <property role="TrG5h" value="DeprecatedReferenceTargetResult" />
+    <ref role="1TJDcQ" to="tpck:gw2VY9q" resolve="BaseConcept" />
+    <node concept="1TJgyj" id="2fzXGFm3KyB" role="1TKVEi">
+      <property role="IQ2ns" value="2586181962075932839" />
+      <property role="20kJfa" value="targetNode" />
+      <ref role="20lvS9" to="tpck:gw2VY9q" resolve="BaseConcept" />
+    </node>
+    <node concept="1TJgyj" id="2fzXGFm3KyC" role="1TKVEi">
+      <property role="IQ2ns" value="2586181962075932840" />
+      <property role="20lmBu" value="fLJjDmT/aggregation" />
+      <property role="20kJfa" value="deprecatedReferringNodes" />
+      <property role="20lbJX" value="fLJekj5/_0__n" />
+      <ref role="20lvS9" node="7LZ1KAVUTVU" resolve="DeprecatedNodeResult" />
+    </node>
+    <node concept="1TJgyi" id="2fzXGFm3KyD" role="1TKVEl">
+      <property role="IQ2nx" value="2586181962075932841" />
+      <property role="TrG5h" value="displayReferringNodes" />
+      <ref role="AX2Wp" to="tpck:fKAQMTB" resolve="boolean" />
+    </node>
+  </node>
 </model>
 
diff --git a/code/languages/org.mpsqa.deprecated/tests/test.org.mpsqa.deprecated/models/test.org.mpsqa.deprecated._010_deprecation_tests@tests.mps b/code/languages/org.mpsqa.deprecated/tests/test.org.mpsqa.deprecated/models/test.org.mpsqa.deprecated._010_deprecation_tests@tests.mps
index de9cfac1..4c0489ae 100644
--- a/code/languages/org.mpsqa.deprecated/tests/test.org.mpsqa.deprecated/models/test.org.mpsqa.deprecated._010_deprecation_tests@tests.mps
+++ b/code/languages/org.mpsqa.deprecated/tests/test.org.mpsqa.deprecated/models/test.org.mpsqa.deprecated._010_deprecation_tests@tests.mps
@@ -307,7 +307,7 @@
                   </node>
                 </node>
                 <node concept="13MTOL" id="45IuY9nkaat" role="2OqNvi">
-                  <ref role="13MTZf" to="3idh:ah8HpWiuVW" resolve="deprecatedType" />
+                  <ref role="13MTZf" to="3idh:ah8HpWiuVW" resolve="deprecatedConceptResults" />
                 </node>
               </node>
               <node concept="13MTOL" id="45IuY9nkaWE" role="2OqNvi">

From 20cf17f7077f37ec290bb72a71d93880b90d381c Mon Sep 17 00:00:00 2001
From: danielratiu <ratiud@googlemail.com>
Date: Fri, 8 Nov 2024 09:02:42 +0100
Subject: [PATCH 39/42] arc: removed not needed dependencies (#229)

Co-authored-by: Daniel Ratiu <ratiud@mail.google.com>
---
 .../org.mpsqa.arch.pluginSolution.plugin.mps  | 71 ++++++-------------
 .../org.mpsqa.arch.pluginSolution.msd         | 16 -----
 .../org.mpsqa.build._060_arch_build.mps       | 23 ------
 3 files changed, 22 insertions(+), 88 deletions(-)

diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
index e3fd1dae..92762c95 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
@@ -28,12 +28,9 @@
     <import index="qq03" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.actions(MPS.Platform/)" />
     <import index="g1qu" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.util.ui(MPS.IDEA/)" />
     <import index="l5y2" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.ui.scale(MPS.IDEA/)" />
-    <import index="z1c3" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.project(MPS.Platform/)" />
-    <import index="3s15" ref="86441d7a-e194-42da-81a5-2161ec62a379/java:jetbrains.mps.workbench(MPS.Workbench/)" />
     <import index="alof" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.project(MPS.Platform/)" />
-    <import index="ddhc" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.ide(MPS.IDEA/)" />
     <import index="bd8o" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.application(MPS.IDEA/)" />
-    <import index="z1c4" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.project(MPS.Core/)" implicit="true" />
+    <import index="z1c3" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.project(MPS.Core/)" implicit="true" />
     <import index="71xd" ref="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61/java:jetbrains.mps.ide.tools(MPS.Platform/)" implicit="true" />
     <import index="tprs" ref="r:00000000-0000-4000-0000-011c895904a4(jetbrains.mps.ide.actions)" implicit="true" />
     <import index="33ny" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.util(JDK/)" implicit="true" />
@@ -100,6 +97,7 @@
         <reference id="1203092736097" name="modifiedGroup" index="tU$_T" />
       </concept>
       <concept id="1213888653896" name="jetbrains.mps.lang.plugin.structure.InitBlock" flags="in" index="2xpIHi" />
+      <concept id="1213888797251" name="jetbrains.mps.lang.plugin.structure.ConceptFunctionParameter_Project" flags="nn" index="2xqhHp" />
       <concept id="1205679047295" name="jetbrains.mps.lang.plugin.structure.ActionParameterDeclaration" flags="ig" index="2S4$dB" />
       <concept id="1214307303872" name="jetbrains.mps.lang.plugin.structure.GetComponentBlock" flags="in" index="2UmK3q" />
       <concept id="6547237850567458268" name="jetbrains.mps.lang.plugin.structure.BaseToolDeclaration" flags="ng" index="2XNcJY">
@@ -514,7 +512,7 @@
               </node>
             </node>
             <node concept="liA8E" id="sRpFtPj9cV" role="2OqNvi">
-              <ref role="37wK5l" to="z1c4:~Project.getRepository()" resolve="getRepository" />
+              <ref role="37wK5l" to="z1c3:~Project.getRepository()" resolve="getRepository" />
             </node>
           </node>
         </node>
@@ -1100,6 +1098,7 @@
                             </node>
                             <node concept="2XshWL" id="sRpFtPtf83" role="2OqNvi">
                               <ref role="2WH_rO" node="sRpFtPte1W" resolve="refreshFromOldConfiguration" />
+                              <node concept="2xqhHp" id="6GOEUU4CbO6" role="2XxRq1" />
                             </node>
                           </node>
                         </node>
@@ -1596,39 +1595,6 @@
       <property role="TrG5h" value="refreshFromOldConfiguration" />
       <node concept="3cqZAl" id="sRpFtPteUc" role="3clF45" />
       <node concept="3clFbS" id="sRpFtPte1Y" role="3clF47">
-        <node concept="3cpWs8" id="sRpFtPtrJW" role="3cqZAp">
-          <node concept="3cpWsn" id="sRpFtPtrJX" role="3cpWs9">
-            <property role="TrG5h" value="project" />
-            <node concept="3uibUv" id="sRpFtPtrJY" role="1tU5fm">
-              <ref role="3uigEE" to="z1c3:~MPSProject" resolve="MPSProject" />
-            </node>
-            <node concept="2OqwBi" id="sRpFtPtvlD" role="33vP2m">
-              <node concept="10M0yZ" id="sRpFtPtv22" role="2Oq$k0">
-                <ref role="3cqZAo" to="qq03:~MPSCommonDataKeys.MPS_PROJECT" resolve="MPS_PROJECT" />
-                <ref role="1PxDUh" to="3s15:~MPSDataKeys" resolve="MPSDataKeys" />
-              </node>
-              <node concept="liA8E" id="sRpFtPtvVp" role="2OqNvi">
-                <ref role="37wK5l" to="qkt:~DataKey.getData(com.intellij.openapi.actionSystem.DataContext)" resolve="getData" />
-                <node concept="2OqwBi" id="sRpFtPtz$S" role="37wK5m">
-                  <node concept="2YIFZM" id="sRpFtPtzmV" role="2Oq$k0">
-                    <ref role="37wK5l" to="ddhc:~DataManager.getInstance()" resolve="getInstance" />
-                    <ref role="1Pybhc" to="ddhc:~DataManager" resolve="DataManager" />
-                  </node>
-                  <node concept="liA8E" id="sRpFtPt$Ki" role="2OqNvi">
-                    <ref role="37wK5l" to="ddhc:~DataManager.getDataContext(java.awt.Component)" resolve="getDataContext" />
-                    <node concept="2OqwBi" id="sRpFtPt_hZ" role="37wK5m">
-                      <node concept="2WthIp" id="sRpFtPt_1r" role="2Oq$k0" />
-                      <node concept="liA8E" id="sRpFtPt_DM" role="2OqNvi">
-                        <ref role="37wK5l" to="71xd:~BaseTool.getComponent()" resolve="getComponent" />
-                      </node>
-                    </node>
-                  </node>
-                </node>
-              </node>
-            </node>
-          </node>
-        </node>
-        <node concept="3clFbH" id="sRpFtPubau" role="3cqZAp" />
         <node concept="3cpWs8" id="sRpFtPtg6T" role="3cqZAp">
           <node concept="3cpWsn" id="sRpFtPtg6W" role="3cpWs9">
             <property role="TrG5h" value="source" />
@@ -1716,11 +1682,15 @@
             </node>
           </node>
           <node concept="2OqwBi" id="sRpFtPucFL" role="ukAjM">
-            <node concept="37vLTw" id="sRpFtPuc0v" role="2Oq$k0">
-              <ref role="3cqZAo" node="sRpFtPtrJX" resolve="project" />
-            </node>
             <node concept="liA8E" id="sRpFtPudry" role="2OqNvi">
-              <ref role="37wK5l" to="z1c4:~Project.getRepository()" resolve="getRepository" />
+              <ref role="37wK5l" to="z1c3:~Project.getRepository()" resolve="getRepository" />
+            </node>
+            <node concept="2YIFZM" id="6GOEUU5r_7x" role="2Oq$k0">
+              <ref role="37wK5l" to="alof:~ProjectHelper.fromIdeaProject(com.intellij.openapi.project.Project)" resolve="fromIdeaProject" />
+              <ref role="1Pybhc" to="alof:~ProjectHelper" resolve="ProjectHelper" />
+              <node concept="37vLTw" id="6GOEUU5r_7y" role="37wK5m">
+                <ref role="3cqZAo" node="6GOEUU5rxoX" resolve="project" />
+              </node>
             </node>
           </node>
         </node>
@@ -1728,12 +1698,8 @@
           <node concept="2YIFZM" id="sRpFtPtptd" role="3clFbG">
             <ref role="37wK5l" node="1Nl9e7Dzqh4" resolve="displayPlantUml" />
             <ref role="1Pybhc" node="1Nl9e7Dzq0d" resolve="PlantUMLToolStarter" />
-            <node concept="2YIFZM" id="sRpFtPtBHB" role="37wK5m">
-              <ref role="37wK5l" to="alof:~ProjectHelper.toIdeaProject(jetbrains.mps.project.Project)" resolve="toIdeaProject" />
-              <ref role="1Pybhc" to="alof:~ProjectHelper" resolve="ProjectHelper" />
-              <node concept="37vLTw" id="sRpFtPtBR5" role="37wK5m">
-                <ref role="3cqZAo" node="sRpFtPtrJX" resolve="project" />
-              </node>
+            <node concept="37vLTw" id="6GOEUU5rC3M" role="37wK5m">
+              <ref role="3cqZAo" node="6GOEUU5rxoX" resolve="project" />
             </node>
             <node concept="2OqwBi" id="sRpFtPtpDa" role="37wK5m">
               <node concept="2WthIp" id="sRpFtPtpDd" role="2Oq$k0" />
@@ -1748,6 +1714,13 @@
         </node>
       </node>
       <node concept="3Tm1VV" id="sRpFtPteIr" role="1B3o_S" />
+      <node concept="37vLTG" id="6GOEUU5rxoX" role="3clF46">
+        <property role="TrG5h" value="project" />
+        <property role="3TUv4t" value="true" />
+        <node concept="3uibUv" id="6GOEUU5rxoW" role="1tU5fm">
+          <ref role="3uigEE" to="4nm9:~Project" resolve="Project" />
+        </node>
+      </node>
     </node>
   </node>
   <node concept="tC5Ba" id="1tkdAPw6lGy">
@@ -3626,7 +3599,7 @@
               </node>
             </node>
             <node concept="liA8E" id="sRpFtPjcHV" role="2OqNvi">
-              <ref role="37wK5l" to="z1c4:~Project.getRepository()" resolve="getRepository" />
+              <ref role="37wK5l" to="z1c3:~Project.getRepository()" resolve="getRepository" />
             </node>
           </node>
         </node>
diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
index eb5107b8..62c918c1 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
@@ -19,11 +19,7 @@
     <dependency reexport="false">6c101563-ba1f-458d-b298-a75634941e0c(org.mpsqa.arch)</dependency>
     <dependency reexport="false">498d89d2-c2e9-11e2-ad49-6cf049e62fe5(MPS.IDEA)</dependency>
     <dependency reexport="false">742f6602-5a2f-4313-aa6e-ae1cd4ffdc61(MPS.Platform)</dependency>
-    <dependency reexport="false">7866978e-a0f0-4cc7-81bc-4d213d9375e1(jetbrains.mps.lang.smodel)</dependency>
-    <dependency reexport="false">446c26eb-2b7b-4bf0-9b35-f83fa582753e(jetbrains.mps.lang.modelapi)</dependency>
-    <dependency reexport="false">8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)</dependency>
     <dependency reexport="false">ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)</dependency>
-    <dependency reexport="false">86441d7a-e194-42da-81a5-2161ec62a379(MPS.Workbench)</dependency>
   </dependencies>
   <languageVersions>
     <language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
@@ -50,19 +46,7 @@
     <module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
     <module reference="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61(MPS.Platform)" version="0" />
     <module reference="39983771-4e9b-401b-a1a9-1da6c777c843(MPS.ThirdParty)" version="0" />
-    <module reference="86441d7a-e194-42da-81a5-2161ec62a379(MPS.Workbench)" version="0" />
-    <module reference="f3061a53-9226-4cc5-a443-f952ceaf5816(jetbrains.mps.baseLanguage)" version="0" />
-    <module reference="fd392034-7849-419d-9071-12563d152375(jetbrains.mps.baseLanguage.closures)" version="0" />
-    <module reference="83888646-71ce-4f1c-9c53-c54016f6ad4f(jetbrains.mps.baseLanguage.collections)" version="0" />
-    <module reference="e39e4a59-8cb6-498e-860e-8fa8361c0d90(jetbrains.mps.baseLanguage.scopes)" version="0" />
-    <module reference="2d3c70e9-aab2-4870-8d8d-6036800e4103(jetbrains.mps.kernel)" version="0" />
-    <module reference="d936855b-48da-4812-a8a0-2bfddd633ac5(jetbrains.mps.lang.behavior.api)" version="0" />
     <module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
-    <module reference="446c26eb-2b7b-4bf0-9b35-f83fa582753e(jetbrains.mps.lang.modelapi)" version="0" />
-    <module reference="d7eb0a2a-bd50-4576-beae-e4a89db35f20(jetbrains.mps.lang.scopes.runtime)" version="0" />
-    <module reference="7866978e-a0f0-4cc7-81bc-4d213d9375e1(jetbrains.mps.lang.smodel)" version="1" />
-    <module reference="c72da2b9-7cce-4447-8389-f407dc1158b7(jetbrains.mps.lang.structure)" version="0" />
-    <module reference="9ded098b-ad6a-4657-bfd9-48636cfe8bc3(jetbrains.mps.lang.traceable)" version="0" />
     <module reference="6c101563-ba1f-458d-b298-a75634941e0c(org.mpsqa.arch)" version="0" />
     <module reference="96212ac2-423f-4cfb-b211-b58d0546b6bf(org.mpsqa.arch.pluginSolution)" version="0" />
   </dependencyVersions>
diff --git a/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._060_arch_build.mps b/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._060_arch_build.mps
index d72c7c22..74e4dcc6 100644
--- a/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._060_arch_build.mps
+++ b/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._060_arch_build.mps
@@ -243,9 +243,6 @@
           <property role="3MwjfP" value="org.mpsqa.arch" />
         </node>
       </node>
-      <node concept="m$_yC" id="2VR19mpiUGU" role="m$_yJ">
-        <ref role="m$_y1" to="ffeo:5lGJ4TajoV9" resolve="jetbrains.mps.ide.migration.workbench" />
-      </node>
     </node>
     <node concept="2G$12M" id="50Wzfz4shz9" role="3989C9">
       <property role="TrG5h" value="org.mpsqa.arch" />
@@ -355,11 +352,6 @@
             </node>
           </node>
         </node>
-        <node concept="1SiIV0" id="50Wzfz4sh_0" role="3bR37C">
-          <node concept="3bR9La" id="50Wzfz4sh_1" role="1SiIV1">
-            <ref role="3bR37D" to="ffeo:1H905DlDUSw" resolve="MPS.OpenAPI" />
-          </node>
-        </node>
         <node concept="1SiIV0" id="50Wzfz4sh_2" role="3bR37C">
           <node concept="3bR9La" id="50Wzfz4sh_3" role="1SiIV1">
             <ref role="3bR37D" to="ffeo:mXGwHwhVPj" resolve="JDK" />
@@ -370,11 +362,6 @@
             <ref role="3bR37D" to="ffeo:1ia2VB5guYy" resolve="MPS.IDEA" />
           </node>
         </node>
-        <node concept="1SiIV0" id="50Wzfz4sh_6" role="3bR37C">
-          <node concept="3bR9La" id="50Wzfz4sh_7" role="1SiIV1">
-            <ref role="3bR37D" to="ffeo:4SM2EuqHUPF" resolve="jetbrains.mps.lang.modelapi" />
-          </node>
-        </node>
         <node concept="1SiIV0" id="50Wzfz4sh_8" role="3bR37C">
           <node concept="3bR9La" id="50Wzfz4sh_9" role="1SiIV1">
             <ref role="3bR37D" to="ffeo:7Kfy9QB6KXW" resolve="jetbrains.mps.lang.core" />
@@ -385,11 +372,6 @@
             <ref role="3bR37D" to="ffeo:1TaHNgiIbJb" resolve="MPS.Platform" />
           </node>
         </node>
-        <node concept="1SiIV0" id="50Wzfz4sh_c" role="3bR37C">
-          <node concept="3bR9La" id="50Wzfz4sh_d" role="1SiIV1">
-            <ref role="3bR37D" to="ffeo:7Kfy9QB6L9O" resolve="jetbrains.mps.lang.smodel" />
-          </node>
-        </node>
         <node concept="1SiIV0" id="50Wzfz4sh_e" role="3bR37C">
           <node concept="3bR9La" id="50Wzfz4sh_f" role="1SiIV1">
             <ref role="3bR37D" node="50Wzfz4shzn" resolve="org.mpsqa.arch" />
@@ -452,11 +434,6 @@
             </node>
           </node>
         </node>
-        <node concept="1SiIV0" id="2VR19mpiUB5" role="3bR37C">
-          <node concept="3bR9La" id="2VR19mpiUB6" role="1SiIV1">
-            <ref role="3bR37D" to="ffeo:2eDSGe9d1q1" resolve="MPS.Workbench" />
-          </node>
-        </node>
       </node>
     </node>
     <node concept="2G$12M" id="GdL2Wddnv9" role="3989C9">

From 7a96d588c1e79a312229020e96fcea35436db285 Mon Sep 17 00:00:00 2001
From: Daniel Ratiu <ratiud@mail.google.com>
Date: Mon, 11 Nov 2024 09:42:51 +0100
Subject: [PATCH 40/42] ran "gradlew migrate remigrate"

---
 .../models/org.mpsqa.arch.behavior.mps        |  2 +-
 .../models/org.mpsqa.arch.constraints.mps     |  4 ++--
 .../models/org.mpsqa.arch.editor.mps          | 14 ++++++-------
 .../models/org.mpsqa.arch.intentions.mps      |  4 ++--
 .../models/org.mpsqa.arch.structure.mps       |  2 +-
 .../models/org.mpsqa.arch.typesystem.mps      |  6 +++---
 .../org.mpsqa.arch.pluginSolution.plugin.mps  |  2 +-
 .../org.mpsqa.arch.pluginSolution.msd         |  1 -
 ...qa.arch._010_simple_dependencies@tests.mps |  4 ++--
 ...rrors_suppressor.pluginSolution.plugin.mps | 12 +++++------
 .../org.mpsqa.build._060_arch_build.mps       |  4 ++--
 .../org.mpsqa.build._080_lint_build.mps       |  4 ++--
 .../models/org.mpsqa.lint.generic.editor.mps  | 20 +++++++++----------
 .../org.mpsqa.lint.generic.structure.mps      |  2 +-
 .../org.mpsqa.lint.generic.typesystem.mps     |  2 +-
 .../org.mpsqa.lint.generic.mpl                |  2 ++
 ...int.generic.linters_library.filesystem.mps | 15 +++++++-------
 ...psqa.lint.generic.linters_library.meta.mps | 10 +++++-----
 ...qa.lint.generic.linters_library.models.mps | 18 ++++++++---------
 ...a.lint.generic.linters_library.modules.mps |  2 +-
 ...sqa.lint.generic.linters_library.nodes.mps | 14 ++++++-------
 ...andbox._010_smoke_user_defined_linters.mps |  2 +-
 ....linters_library.performance_generator.mps |  2 +-
 ...s_lang.linters_library.behavior_aspect.mps | 12 +++++------
 ...mps_lang.linters_library.build_scripts.mps |  8 ++++----
 ...ang.linters_library.performance_editor.mps | 10 +++++-----
 ...linters_library.performance_typesystem.mps |  8 ++++----
 ...lang.linters_library.performance_utils.mps | 10 +++++-----
 ..._lang.linters_library.structure_aspect.mps | 10 +++++-----
 ...qa.lint.mps_lang.linters_library.tests.mps |  4 ++--
 ...lang.linters_library.typesystem_aspect.mps | 12 +++++------
 31 files changed, 110 insertions(+), 112 deletions(-)

diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
index 40a3770d..5d616215 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.behavior.mps
@@ -7,7 +7,7 @@
     <use id="af65afd8-f0dd-4942-87d9-63a55f2a9db1" name="jetbrains.mps.lang.behavior" version="2" />
     <use id="73736c50-f124-433b-b789-2828a15a0adc" name="jetbrains.mps.baseLanguage.collections.trove" version="0" />
     <use id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage" version="12" />
-    <use id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections" version="1" />
+    <use id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections" version="2" />
     <use id="fd392034-7849-419d-9071-12563d152375" name="jetbrains.mps.baseLanguage.closures" version="0" />
     <use id="f2801650-65d5-424e-bb1b-463a8781b786" name="jetbrains.mps.baseLanguage.javadoc" version="2" />
     <devkit ref="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.constraints.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.constraints.mps
index 4b23aadd..62bf4c84 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.constraints.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.constraints.mps
@@ -82,7 +82,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -143,7 +143,7 @@
       <concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
         <property id="1193676396447" name="virtualPackage" index="3GE5qa" />
       </concept>
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
index 8094b99d..1eacddd8 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
@@ -71,7 +71,7 @@
       </concept>
       <concept id="1186414860679" name="jetbrains.mps.lang.editor.structure.EditableStyleClassItem" flags="ln" index="VPxyj" />
       <concept id="1186414928363" name="jetbrains.mps.lang.editor.structure.SelectableStyleSheetItem" flags="ln" index="VPM3Z" />
-      <concept id="1630016958697344083" name="jetbrains.mps.lang.editor.structure.IMenu_Concept" flags="ng" index="2ZABuq">
+      <concept id="1630016958697344083" name="jetbrains.mps.lang.editor.structure.IMenu_Concept" flags="ngI" index="2ZABuq">
         <reference id="6591946374543067572" name="conceptDeclaration" index="aqKnT" />
         <child id="5991739802479788259" name="type" index="22hAXT" />
       </concept>
@@ -80,7 +80,7 @@
       <concept id="1088013125922" name="jetbrains.mps.lang.editor.structure.CellModel_RefCell" flags="sg" stub="730538219795941030" index="1iCGBv">
         <child id="1088186146602" name="editorComponent" index="1sWHZn" />
       </concept>
-      <concept id="1381004262292414836" name="jetbrains.mps.lang.editor.structure.ICellStyle" flags="ng" index="1k5N5V">
+      <concept id="1381004262292414836" name="jetbrains.mps.lang.editor.structure.ICellStyle" flags="ngI" index="1k5N5V">
         <reference id="1381004262292426837" name="parentStyleClass" index="1k5W1q" />
       </concept>
       <concept id="701160265283677816" name="jetbrains.mps.lang.editor.structure.TransparentStyleSheetItem" flags="ln" index="3noiJN" />
@@ -105,7 +105,7 @@
         <property id="1073389577007" name="text" index="3F0ifm" />
       </concept>
       <concept id="1073389658414" name="jetbrains.mps.lang.editor.structure.CellModel_Property" flags="sg" stub="730538219796134133" index="3F0A7n" />
-      <concept id="1219418625346" name="jetbrains.mps.lang.editor.structure.IStyleContainer" flags="ng" index="3F0Thp">
+      <concept id="1219418625346" name="jetbrains.mps.lang.editor.structure.IStyleContainer" flags="ngI" index="3F0Thp">
         <child id="1219418656006" name="styleItem" index="3F10Kt" />
       </concept>
       <concept id="1073389882823" name="jetbrains.mps.lang.editor.structure.CellModel_RefNode" flags="sg" stub="730538219795960754" index="3F1sOY" />
@@ -117,7 +117,7 @@
         <child id="1225900141900" name="modelAccessor" index="1HlULh" />
       </concept>
       <concept id="5624877018226900666" name="jetbrains.mps.lang.editor.structure.TransformationMenu" flags="ng" index="3ICUPy" />
-      <concept id="5624877018228267058" name="jetbrains.mps.lang.editor.structure.ITransformationMenu" flags="ng" index="3INCJE">
+      <concept id="5624877018228267058" name="jetbrains.mps.lang.editor.structure.ITransformationMenu" flags="ngI" index="3INCJE">
         <child id="1638911550608572412" name="sections" index="IW6Ez" />
       </concept>
       <concept id="1161622981231" name="jetbrains.mps.lang.editor.structure.ConceptFunctionParameter_editorContext" flags="nn" index="1Q80Hx" />
@@ -158,7 +158,7 @@
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
-      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
         <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
       </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
@@ -188,7 +188,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -250,7 +250,7 @@
       <concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
         <property id="1193676396447" name="virtualPackage" index="3GE5qa" />
       </concept>
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps
index 2ba9f1b2..b4f6678c 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.intentions.mps
@@ -81,7 +81,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -145,7 +145,7 @@
       <concept id="1228341669568" name="jetbrains.mps.lang.smodel.structure.Node_DetachOperation" flags="nn" index="3YRAZt" />
     </language>
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.structure.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.structure.mps
index d93467b3..e7bb07ae 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.structure.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.structure.mps
@@ -56,7 +56,7 @@
       <concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
         <property id="1193676396447" name="virtualPackage" index="3GE5qa" />
       </concept>
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
index cdb6acbe..a6512a14 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
@@ -107,7 +107,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -122,7 +122,7 @@
         <child id="1081773367580" name="leftExpression" index="3uHU7B" />
       </concept>
       <concept id="1073239437375" name="jetbrains.mps.baseLanguage.structure.NotEqualsExpression" flags="nn" index="3y3z36" />
-      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
+      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ngI" index="1B3ioH">
         <child id="1178549979242" name="visibility" index="1B3o_S" />
       </concept>
       <concept id="1163668896201" name="jetbrains.mps.baseLanguage.structure.TernaryOperatorExpression" flags="nn" index="3K4zz7">
@@ -281,7 +281,7 @@
         <property id="1193676396447" name="virtualPackage" index="3GE5qa" />
         <child id="5169995583184591170" name="smodelAttribute" index="lGtFl" />
       </concept>
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
index 02d71df7..92762c95 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/models/org.mpsqa.arch.pluginSolution.plugin.mps
@@ -3,7 +3,7 @@
   <persistence version="9" />
   <attribute name="doNotGenerate" value="false" />
   <languages>
-    <use id="28f9e497-3b42-4291-aeba-0a1039153ab1" name="jetbrains.mps.lang.plugin" version="5" />
+    <use id="28f9e497-3b42-4291-aeba-0a1039153ab1" name="jetbrains.mps.lang.plugin" version="6" />
     <use id="ef7bf5ac-d06c-4342-b11d-e42104eb9343" name="jetbrains.mps.lang.plugin.standalone" version="0" />
     <use id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel" version="19" />
     <use id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage" version="12" />
diff --git a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
index 1a84be52..6bae75cc 100644
--- a/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
+++ b/code/languages/org.mpsqa.arch/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd
@@ -48,7 +48,6 @@
     <module reference="742f6602-5a2f-4313-aa6e-ae1cd4ffdc61(MPS.Platform)" version="0" />
     <module reference="39983771-4e9b-401b-a1a9-1da6c777c843(MPS.ThirdParty)" version="0" />
     <module reference="86441d7a-e194-42da-81a5-2161ec62a379(MPS.Workbench)" version="0" />
-    <module reference="39983771-4e9b-401b-a1a9-1da6c777c843(MPS.ThirdParty)" version="0" />
     <module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
     <module reference="6c101563-ba1f-458d-b298-a75634941e0c(org.mpsqa.arch)" version="0" />
     <module reference="96212ac2-423f-4cfb-b211-b58d0546b6bf(org.mpsqa.arch.pluginSolution)" version="0" />
diff --git a/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps b/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps
index 7a7515b5..ebddcad4 100644
--- a/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps
+++ b/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps
@@ -21,7 +21,7 @@
       <concept id="1215607067978" name="jetbrains.mps.lang.test.structure.CheckNodeForErrorMessagesOperation" flags="ng" index="7OXhh">
         <property id="3743352646565420194" name="includeSelf" index="GvXf4" />
       </concept>
-      <concept id="7691029917083872157" name="jetbrains.mps.lang.test.structure.IRuleReference" flags="ng" index="2u4UPC">
+      <concept id="7691029917083872157" name="jetbrains.mps.lang.test.structure.IRuleReference" flags="ngI" index="2u4UPC">
         <reference id="8333855927540250453" name="declaration" index="39XzEq" />
       </concept>
       <concept id="4531408400484511853" name="jetbrains.mps.lang.test.structure.ReportErrorStatementReference" flags="ng" index="2PYRI3" />
@@ -76,7 +76,7 @@
       <concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
         <child id="5169995583184591170" name="smodelAttribute" index="lGtFl" />
       </concept>
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.base/solutions/org.mpsqa.base.errors_suppressor.pluginSolution/models/org.mpsqa.base.errors_suppressor.pluginSolution.plugin.mps b/code/languages/org.mpsqa.base/solutions/org.mpsqa.base.errors_suppressor.pluginSolution/models/org.mpsqa.base.errors_suppressor.pluginSolution.plugin.mps
index 31788186..e6edfe65 100644
--- a/code/languages/org.mpsqa.base/solutions/org.mpsqa.base.errors_suppressor.pluginSolution/models/org.mpsqa.base.errors_suppressor.pluginSolution.plugin.mps
+++ b/code/languages/org.mpsqa.base/solutions/org.mpsqa.base.errors_suppressor.pluginSolution/models/org.mpsqa.base.errors_suppressor.pluginSolution.plugin.mps
@@ -79,7 +79,7 @@
       <concept id="1188207840427" name="jetbrains.mps.baseLanguage.structure.AnnotationInstance" flags="nn" index="2AHcQZ">
         <reference id="1188208074048" name="annotation" index="2AI5Lk" />
       </concept>
-      <concept id="1188208481402" name="jetbrains.mps.baseLanguage.structure.HasAnnotation" flags="ng" index="2AJDlI">
+      <concept id="1188208481402" name="jetbrains.mps.baseLanguage.structure.HasAnnotation" flags="ngI" index="2AJDlI">
         <child id="1188208488637" name="annotation" index="2AJF6D" />
       </concept>
       <concept id="1154032098014" name="jetbrains.mps.baseLanguage.structure.AbstractLoopStatement" flags="nn" index="2LF5Ji">
@@ -134,7 +134,7 @@
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
-      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
         <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
       </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
@@ -186,7 +186,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -211,7 +211,7 @@
         <child id="1081773367580" name="leftExpression" index="3uHU7B" />
       </concept>
       <concept id="1073239437375" name="jetbrains.mps.baseLanguage.structure.NotEqualsExpression" flags="nn" index="3y3z36" />
-      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
+      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ngI" index="1B3ioH">
         <child id="1178549979242" name="visibility" index="1B3o_S" />
       </concept>
       <concept id="1163668896201" name="jetbrains.mps.baseLanguage.structure.TernaryOperatorExpression" flags="nn" index="3K4zz7">
@@ -276,7 +276,7 @@
       <concept id="1213999088275" name="jetbrains.mps.baseLanguage.classifiers.structure.DefaultClassifierFieldDeclaration" flags="ig" index="2BZ0e9" />
       <concept id="1213999117680" name="jetbrains.mps.baseLanguage.classifiers.structure.DefaultClassifierFieldAccessOperation" flags="nn" index="2BZ7hE" />
       <concept id="1205752633985" name="jetbrains.mps.baseLanguage.classifiers.structure.ThisClassifierExpression" flags="nn" index="2WthIp" />
-      <concept id="1205756064662" name="jetbrains.mps.baseLanguage.classifiers.structure.IMemberOperation" flags="ng" index="2WEnae">
+      <concept id="1205756064662" name="jetbrains.mps.baseLanguage.classifiers.structure.IMemberOperation" flags="ngI" index="2WEnae">
         <reference id="1205756909548" name="member" index="2WH_rO" />
       </concept>
     </language>
@@ -305,7 +305,7 @@
       <concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
         <child id="5169995583184591170" name="smodelAttribute" index="lGtFl" />
       </concept>
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
       <concept id="4222318806802425298" name="jetbrains.mps.lang.core.structure.SuppressErrorsAnnotation" flags="ng" index="15s5l7">
diff --git a/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._060_arch_build.mps b/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._060_arch_build.mps
index f338cbb7..8498529f 100644
--- a/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._060_arch_build.mps
+++ b/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._060_arch_build.mps
@@ -56,7 +56,7 @@
       <concept id="8654221991637384182" name="jetbrains.mps.build.structure.BuildFileIncludesSelector" flags="ng" index="3qWCbU">
         <property id="8654221991637384184" name="pattern" index="3qWCbO" />
       </concept>
-      <concept id="4701820937132344003" name="jetbrains.mps.build.structure.BuildLayout_Container" flags="ng" index="1y1bJS">
+      <concept id="4701820937132344003" name="jetbrains.mps.build.structure.BuildLayout_Container" flags="ngI" index="1y1bJS">
         <child id="7389400916848037006" name="children" index="39821P" />
       </concept>
       <concept id="841011766566059607" name="jetbrains.mps.build.structure.BuildStringNotEmpty" flags="ng" index="3_J27D" />
@@ -69,7 +69,7 @@
       </concept>
     </language>
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._080_lint_build.mps b/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._080_lint_build.mps
index 091b978a..02d9d19d 100644
--- a/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._080_lint_build.mps
+++ b/code/languages/org.mpsqa.build/solutions/org.mpsqa.build/models/org.mpsqa.build._080_lint_build.mps
@@ -52,7 +52,7 @@
       <concept id="8654221991637384182" name="jetbrains.mps.build.structure.BuildFileIncludesSelector" flags="ng" index="3qWCbU">
         <property id="8654221991637384184" name="pattern" index="3qWCbO" />
       </concept>
-      <concept id="4701820937132344003" name="jetbrains.mps.build.structure.BuildLayout_Container" flags="ng" index="1y1bJS">
+      <concept id="4701820937132344003" name="jetbrains.mps.build.structure.BuildLayout_Container" flags="ngI" index="1y1bJS">
         <child id="7389400916848037006" name="children" index="39821P" />
       </concept>
       <concept id="841011766566059607" name="jetbrains.mps.build.structure.BuildStringNotEmpty" flags="ng" index="3_J27D" />
@@ -65,7 +65,7 @@
       </concept>
     </language>
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
index b4cd431a..d37f3ed0 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.editor.mps
@@ -15,8 +15,6 @@
     <import index="a1af" ref="r:839ac015-7de1-49f3-ac8f-8d7c6d47259d(org.mpsqa.lint.generic.structure)" />
     <import index="qqy" ref="r:baac1a2f-1e52-45fa-95c5-02a3dfae441c(org.mpsqa.lint.generic.util)" />
     <import index="lzb2" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.ui(MPS.IDEA/)" />
-    <import index="guwi" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.io(JDK/)" />
-    <import index="z60i" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.awt(JDK/)" />
     <import index="tpck" ref="r:00000000-0000-4000-0000-011c89590288(jetbrains.mps.lang.core.structure)" implicit="true" />
     <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
     <import index="mhbf" ref="8865b7a8-5271-43d3-884c-6fd1d9cfdd34/java:org.jetbrains.mps.openapi.model(MPS.OpenAPI/)" implicit="true" />
@@ -87,7 +85,7 @@
       </concept>
       <concept id="1186414860679" name="jetbrains.mps.lang.editor.structure.EditableStyleClassItem" flags="ln" index="VPxyj" />
       <concept id="1186414928363" name="jetbrains.mps.lang.editor.structure.SelectableStyleSheetItem" flags="ln" index="VPM3Z" />
-      <concept id="1630016958697344083" name="jetbrains.mps.lang.editor.structure.IMenu_Concept" flags="ng" index="2ZABuq">
+      <concept id="1630016958697344083" name="jetbrains.mps.lang.editor.structure.IMenu_Concept" flags="ngI" index="2ZABuq">
         <reference id="6591946374543067572" name="conceptDeclaration" index="aqKnT" />
         <child id="5991739802479788259" name="type" index="22hAXT" />
       </concept>
@@ -123,7 +121,7 @@
       <concept id="7597241200646296617" name="jetbrains.mps.lang.editor.structure.NavigatableNodeStyleClassItem" flags="ln" index="3k4GqR">
         <child id="7597241200646296618" name="functionNode" index="3k4GqO" />
       </concept>
-      <concept id="1381004262292414836" name="jetbrains.mps.lang.editor.structure.ICellStyle" flags="ng" index="1k5N5V">
+      <concept id="1381004262292414836" name="jetbrains.mps.lang.editor.structure.ICellStyle" flags="ngI" index="1k5N5V">
         <reference id="1381004262292426837" name="parentStyleClass" index="1k5W1q" />
       </concept>
       <concept id="1088185857835" name="jetbrains.mps.lang.editor.structure.InlineEditorComponent" flags="ig" index="1sVBvm" />
@@ -146,7 +144,7 @@
         <property id="1073389577007" name="text" index="3F0ifm" />
       </concept>
       <concept id="1073389658414" name="jetbrains.mps.lang.editor.structure.CellModel_Property" flags="sg" stub="730538219796134133" index="3F0A7n" />
-      <concept id="1219418625346" name="jetbrains.mps.lang.editor.structure.IStyleContainer" flags="ng" index="3F0Thp">
+      <concept id="1219418625346" name="jetbrains.mps.lang.editor.structure.IStyleContainer" flags="ngI" index="3F0Thp">
         <child id="1219418656006" name="styleItem" index="3F10Kt" />
       </concept>
       <concept id="1073389882823" name="jetbrains.mps.lang.editor.structure.CellModel_RefNode" flags="sg" stub="730538219795960754" index="3F1sOY" />
@@ -159,7 +157,7 @@
         <child id="1225900141900" name="modelAccessor" index="1HlULh" />
       </concept>
       <concept id="5624877018226900666" name="jetbrains.mps.lang.editor.structure.TransformationMenu" flags="ng" index="3ICUPy" />
-      <concept id="5624877018228267058" name="jetbrains.mps.lang.editor.structure.ITransformationMenu" flags="ng" index="3INCJE">
+      <concept id="5624877018228267058" name="jetbrains.mps.lang.editor.structure.ITransformationMenu" flags="ngI" index="3INCJE">
         <child id="1638911550608572412" name="sections" index="IW6Ez" />
       </concept>
       <concept id="1161622981231" name="jetbrains.mps.lang.editor.structure.ConceptFunctionParameter_editorContext" flags="nn" index="1Q80Hx" />
@@ -194,7 +192,7 @@
       <concept id="1188207840427" name="jetbrains.mps.baseLanguage.structure.AnnotationInstance" flags="nn" index="2AHcQZ">
         <reference id="1188208074048" name="annotation" index="2AI5Lk" />
       </concept>
-      <concept id="1188208481402" name="jetbrains.mps.baseLanguage.structure.HasAnnotation" flags="ng" index="2AJDlI">
+      <concept id="1188208481402" name="jetbrains.mps.baseLanguage.structure.HasAnnotation" flags="ngI" index="2AJDlI">
         <child id="1188208488637" name="annotation" index="2AJF6D" />
       </concept>
       <concept id="1197027756228" name="jetbrains.mps.baseLanguage.structure.DotExpression" flags="nn" index="2OqwBi">
@@ -227,7 +225,7 @@
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
-      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
         <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
       </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
@@ -280,7 +278,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -297,7 +295,7 @@
         <child id="1081773367580" name="leftExpression" index="3uHU7B" />
       </concept>
       <concept id="1073239437375" name="jetbrains.mps.baseLanguage.structure.NotEqualsExpression" flags="nn" index="3y3z36" />
-      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
+      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ngI" index="1B3ioH">
         <child id="1178549979242" name="visibility" index="1B3o_S" />
       </concept>
       <concept id="1163668896201" name="jetbrains.mps.baseLanguage.structure.TernaryOperatorExpression" flags="nn" index="3K4zz7">
@@ -371,7 +369,7 @@
       <concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
         <property id="1193676396447" name="virtualPackage" index="3GE5qa" />
       </concept>
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.structure.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.structure.mps
index b4e9141c..ae841cee 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.structure.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.structure.mps
@@ -81,7 +81,7 @@
         <property id="1193676396447" name="virtualPackage" index="3GE5qa" />
         <child id="5169995583184591170" name="smodelAttribute" index="lGtFl" />
       </concept>
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
index ea74b9c4..4c12e265 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.typesystem.mps
@@ -6,7 +6,7 @@
     <use id="7a5dda62-9140-4668-ab76-d5ed1746f2b2" name="jetbrains.mps.lang.typesystem" version="5" />
     <use id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage" version="12" />
     <use id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel" version="19" />
-    <use id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections" version="1" />
+    <use id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections" version="2" />
     <use id="760a0a8c-eabb-4521-8bfd-65db761a9ba3" name="jetbrains.mps.baseLanguage.logging" version="0" />
     <use id="a247e09e-2435-45ba-b8d2-07e93feba96a" name="jetbrains.mps.baseLanguage.tuples" version="0" />
     <use id="c7fb639f-be78-4307-89b0-b5959c3fa8c8" name="jetbrains.mps.lang.text" version="0" />
diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/org.mpsqa.lint.generic.mpl b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/org.mpsqa.lint.generic.mpl
index f12aaa45..a03e876c 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/org.mpsqa.lint.generic.mpl
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/org.mpsqa.lint.generic.mpl
@@ -95,6 +95,7 @@
     <dependency reexport="false">ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)</dependency>
     <dependency reexport="false">c72da2b9-7cce-4447-8389-f407dc1158b7(jetbrains.mps.lang.structure)</dependency>
     <dependency reexport="false">b15468d9-435b-45b2-bf51-3f984f734cc4(org.mpsqa.lint.generic.runtime)</dependency>
+    <dependency reexport="false" scope="generate-into">1a8554c4-eb84-43ba-8c34-6f0d90c6e75a(jetbrains.mps.lang.smodel.query)</dependency>
   </dependencies>
   <languageVersions>
     <language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
@@ -153,6 +154,7 @@
     <module reference="446c26eb-2b7b-4bf0-9b35-f83fa582753e(jetbrains.mps.lang.modelapi)" version="0" />
     <module reference="d7eb0a2a-bd50-4576-beae-e4a89db35f20(jetbrains.mps.lang.scopes.runtime)" version="0" />
     <module reference="7866978e-a0f0-4cc7-81bc-4d213d9375e1(jetbrains.mps.lang.smodel)" version="1" />
+    <module reference="1a8554c4-eb84-43ba-8c34-6f0d90c6e75a(jetbrains.mps.lang.smodel.query)" version="0" />
     <module reference="c72da2b9-7cce-4447-8389-f407dc1158b7(jetbrains.mps.lang.structure)" version="0" />
     <module reference="c7fb639f-be78-4307-89b0-b5959c3fa8c8(jetbrains.mps.lang.text)" version="0" />
     <module reference="9ded098b-ad6a-4657-bfd9-48636cfe8bc3(jetbrains.mps.lang.traceable)" version="0" />
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.filesystem.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.filesystem.mps
index 23f0b468..33c90637 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.filesystem.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.filesystem.mps
@@ -18,7 +18,6 @@
     <import index="3ju5" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.vfs(MPS.Core/)" />
     <import index="w1kc" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.smodel(MPS.Core/)" />
     <import index="j8aq" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.module(MPS.Core/)" />
-    <import index="18ew" ref="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea/java:jetbrains.mps.util(MPS.Core/)" />
     <import index="zn9m" ref="498d89d2-c2e9-11e2-ad49-6cf049e62fe5/java:com.intellij.openapi.util(MPS.IDEA/)" />
     <import index="wyt6" ref="6354ebe7-c22a-4a0f-ac54-50b52ab9b065/java:java.lang(JDK/)" implicit="true" />
   </imports>
@@ -32,7 +31,7 @@
       <concept id="1188207840427" name="jetbrains.mps.baseLanguage.structure.AnnotationInstance" flags="nn" index="2AHcQZ">
         <reference id="1188208074048" name="annotation" index="2AI5Lk" />
       </concept>
-      <concept id="1188208481402" name="jetbrains.mps.baseLanguage.structure.HasAnnotation" flags="ng" index="2AJDlI">
+      <concept id="1188208481402" name="jetbrains.mps.baseLanguage.structure.HasAnnotation" flags="ngI" index="2AJDlI">
         <child id="1188208488637" name="annotation" index="2AJF6D" />
       </concept>
       <concept id="1095950406618" name="jetbrains.mps.baseLanguage.structure.DivExpression" flags="nn" index="FJ1c_" />
@@ -75,7 +74,7 @@
         <property id="1176718929932" name="isFinal" index="3TUv4t" />
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
-      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
         <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
       </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
@@ -124,7 +123,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -149,7 +148,7 @@
       <concept id="8276990574909231788" name="jetbrains.mps.baseLanguage.structure.FinallyClause" flags="ng" index="1wplmZ">
         <child id="8276990574909234106" name="finallyBody" index="1wplMD" />
       </concept>
-      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
+      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ngI" index="1B3ioH">
         <child id="1178549979242" name="visibility" index="1B3o_S" />
       </concept>
       <concept id="5351203823916750322" name="jetbrains.mps.baseLanguage.structure.TryUniversalStatement" flags="nn" index="3J1_TO">
@@ -171,7 +170,7 @@
       <concept id="7741759128795038157" name="org.mpsqa.lint.generic.structure.CheckableScriptParameter" flags="ng" index="2j1K4_">
         <child id="7741759128795045740" name="type" index="2j1LY4" />
       </concept>
-      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ng" index="2j1LY6">
+      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ngI" index="2j1LY6">
         <child id="7741759128795065655" name="parValues" index="2j1YRv" />
       </concept>
       <concept id="7741759128795045754" name="org.mpsqa.lint.generic.structure.CheckableScriptParameterRef" flags="ng" index="2j1LYi">
@@ -186,7 +185,7 @@
         <child id="7679435328618377120" name="exception" index="vsfCu" />
       </concept>
       <concept id="5024442900367365755" name="org.mpsqa.lint.generic.structure.ModuleCheckingFunction" flags="ig" index="V6NT9" />
-      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ng" index="3miP$Z">
+      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ngI" index="3miP$Z">
         <property id="7008376823202030902" name="skipEvaluation" index="3miQiw" />
       </concept>
       <concept id="2555875871752198907" name="org.mpsqa.lint.generic.structure.ConceptFunctionParameter_MPSProject" flags="ng" index="1MG55F" />
@@ -198,7 +197,7 @@
       <concept id="2555875871751904530" name="org.mpsqa.lint.generic.structure.GenericCheckingFunction" flags="ig" index="1MIXq2" />
     </language>
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.meta.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.meta.mps
index 37f92773..d3c31380 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.meta.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.meta.mps
@@ -38,7 +38,7 @@
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
-      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
         <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
       </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
@@ -62,7 +62,7 @@
         <child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
       </concept>
       <concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -81,7 +81,7 @@
       <concept id="7741759128795038157" name="org.mpsqa.lint.generic.structure.CheckableScriptParameter" flags="ng" index="2j1K4_">
         <child id="7741759128795045740" name="type" index="2j1LY4" />
       </concept>
-      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ng" index="2j1LY6">
+      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ngI" index="2j1LY6">
         <child id="7741759128795065655" name="parValues" index="2j1YRv" />
       </concept>
       <concept id="7741759128795045754" name="org.mpsqa.lint.generic.structure.CheckableScriptParameterRef" flags="ng" index="2j1LYi">
@@ -91,7 +91,7 @@
         <child id="7741759128795045752" name="exp" index="2j1LYg" />
         <child id="7741759128795065723" name="paramRef" index="2j1YQj" />
       </concept>
-      <concept id="1024891882119954681" name="org.mpsqa.lint.generic.structure.ISeverityLevelAwareChecker" flags="ng" index="2oM2l5">
+      <concept id="1024891882119954681" name="org.mpsqa.lint.generic.structure.ISeverityLevelAwareChecker" flags="ngI" index="2oM2l5">
         <property id="1024891882119955433" name="reportLevel" index="2oM2pl" />
       </concept>
       <concept id="2555875871752198907" name="org.mpsqa.lint.generic.structure.ConceptFunctionParameter_MPSProject" flags="ng" index="1MG55F" />
@@ -147,7 +147,7 @@
       </concept>
     </language>
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.models.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.models.mps
index 19d7643d..5fd0f459 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.models.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.models.mps
@@ -58,7 +58,7 @@
       <concept id="1188207840427" name="jetbrains.mps.baseLanguage.structure.AnnotationInstance" flags="nn" index="2AHcQZ">
         <reference id="1188208074048" name="annotation" index="2AI5Lk" />
       </concept>
-      <concept id="1188208481402" name="jetbrains.mps.baseLanguage.structure.HasAnnotation" flags="ng" index="2AJDlI">
+      <concept id="1188208481402" name="jetbrains.mps.baseLanguage.structure.HasAnnotation" flags="ngI" index="2AJDlI">
         <child id="1188208488637" name="annotation" index="2AJF6D" />
       </concept>
       <concept id="1154032098014" name="jetbrains.mps.baseLanguage.structure.AbstractLoopStatement" flags="nn" index="2LF5Ji">
@@ -110,7 +110,7 @@
         <property id="1176718929932" name="isFinal" index="3TUv4t" />
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
-      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
         <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
       </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
@@ -167,7 +167,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -191,7 +191,7 @@
         <child id="8276990574895933172" name="throwable" index="1zc67B" />
       </concept>
       <concept id="1073239437375" name="jetbrains.mps.baseLanguage.structure.NotEqualsExpression" flags="nn" index="3y3z36" />
-      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
+      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ngI" index="1B3ioH">
         <child id="1178549979242" name="visibility" index="1B3o_S" />
       </concept>
       <concept id="5351203823916750322" name="jetbrains.mps.baseLanguage.structure.TryUniversalStatement" flags="nn" index="3J1_TO">
@@ -212,7 +212,7 @@
       <concept id="7741759128795038157" name="org.mpsqa.lint.generic.structure.CheckableScriptParameter" flags="ng" index="2j1K4_">
         <child id="7741759128795045740" name="type" index="2j1LY4" />
       </concept>
-      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ng" index="2j1LY6">
+      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ngI" index="2j1LY6">
         <child id="7741759128795065655" name="parValues" index="2j1YRv" />
       </concept>
       <concept id="7741759128795045754" name="org.mpsqa.lint.generic.structure.CheckableScriptParameterRef" flags="ng" index="2j1LYi">
@@ -227,13 +227,13 @@
       </concept>
       <concept id="5024442900372562022" name="org.mpsqa.lint.generic.structure.ModelCheckingFunction" flags="ig" index="ViGxk" />
       <concept id="5024442900372562777" name="org.mpsqa.lint.generic.structure.ConceptFunctionParameter_Model" flags="nn" index="ViGHF" />
-      <concept id="7223240310078271419" name="org.mpsqa.lint.generic.structure.ILinterResultsContainer" flags="ng" index="3dgnlL">
+      <concept id="7223240310078271419" name="org.mpsqa.lint.generic.structure.ILinterResultsContainer" flags="ngI" index="3dgnlL">
         <child id="7223240310078271420" name="violations" index="3dgnlQ" />
       </concept>
       <concept id="7223240310078271416" name="org.mpsqa.lint.generic.structure.ResultEntry" flags="ng" index="3dgnlM">
         <property id="7223240310078271417" name="result" index="3dgnlN" />
       </concept>
-      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ng" index="3miP$Z">
+      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ngI" index="3miP$Z">
         <property id="7008376823202030902" name="skipEvaluation" index="3miQiw" />
       </concept>
       <concept id="2555875871752198907" name="org.mpsqa.lint.generic.structure.ConceptFunctionParameter_MPSProject" flags="ng" index="1MG55F" />
@@ -276,13 +276,13 @@
       <concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
         <property id="1193676396447" name="virtualPackage" index="3GE5qa" />
       </concept>
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
     <language id="c7fb639f-be78-4307-89b0-b5959c3fa8c8" name="jetbrains.mps.lang.text">
       <concept id="1094247804558289146" name="jetbrains.mps.lang.text.structure.BulletLine" flags="ng" index="2DRihI" />
-      <concept id="5106752179536586436" name="jetbrains.mps.lang.text.structure.IndentedPoint" flags="ng" index="2RT3b8">
+      <concept id="5106752179536586436" name="jetbrains.mps.lang.text.structure.IndentedPoint" flags="ngI" index="2RT3b8">
         <property id="5106752179536586491" name="indentation" index="2RT3bR" />
       </concept>
       <concept id="155656958578482948" name="jetbrains.mps.lang.text.structure.Word" flags="nn" index="3oM_SD">
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.modules.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.modules.mps
index ecc349ca..ae0a1898 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.modules.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.modules.mps
@@ -4,7 +4,7 @@
   <attribute name="doNotGenerate" value="false" />
   <languages>
     <use id="40ab19e9-751a-4433-b645-0e65160e58a0" name="org.mpsqa.lint.generic" version="1" />
-    <use id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections" version="1" />
+    <use id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections" version="2" />
     <use id="c7fb639f-be78-4307-89b0-b5959c3fa8c8" name="jetbrains.mps.lang.text" version="0" />
     <use id="1a8554c4-eb84-43ba-8c34-6f0d90c6e75a" name="jetbrains.mps.lang.smodel.query" version="3" />
     <use id="f3061a53-9226-4cc5-a443-f952ceaf5816" name="jetbrains.mps.baseLanguage" version="12" />
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.nodes.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.nodes.mps
index bd48387f..f6041de8 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.nodes.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.linters_library/models/org.mpsqa.lint.generic.linters_library.nodes.mps
@@ -64,7 +64,7 @@
         <property id="1176718929932" name="isFinal" index="3TUv4t" />
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
-      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
         <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
       </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
@@ -107,7 +107,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -137,7 +137,7 @@
       <concept id="7741759128795038157" name="org.mpsqa.lint.generic.structure.CheckableScriptParameter" flags="ng" index="2j1K4_">
         <child id="7741759128795045740" name="type" index="2j1LY4" />
       </concept>
-      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ng" index="2j1LY6">
+      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ngI" index="2j1LY6">
         <child id="7741759128795065655" name="parValues" index="2j1YRv" />
       </concept>
       <concept id="7741759128795045754" name="org.mpsqa.lint.generic.structure.CheckableScriptParameterRef" flags="ng" index="2j1LYi">
@@ -147,10 +147,10 @@
         <child id="7741759128795045752" name="exp" index="2j1LYg" />
         <child id="7741759128795065723" name="paramRef" index="2j1YQj" />
       </concept>
-      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ng" index="3miP$Z">
+      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ngI" index="3miP$Z">
         <property id="7008376823202030902" name="skipEvaluation" index="3miQiw" />
       </concept>
-      <concept id="2940128608225929719" name="org.mpsqa.lint.generic.structure.IHaveConceptDeclarationReference" flags="ng" index="1Jy4qj">
+      <concept id="2940128608225929719" name="org.mpsqa.lint.generic.structure.IHaveConceptDeclarationReference" flags="ngI" index="1Jy4qj">
         <reference id="1166049300910" name="conceptDeclaration" index="1XX52x" />
       </concept>
       <concept id="2940128608223321285" name="org.mpsqa.lint.generic.structure.RootNodeCheckingFunction" flags="ig" index="1JO3ex" />
@@ -225,7 +225,7 @@
         <property id="1193676396447" name="virtualPackage" index="3GE5qa" />
         <child id="5169995583184591170" name="smodelAttribute" index="lGtFl" />
       </concept>
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
       <concept id="4222318806802425298" name="jetbrains.mps.lang.core.structure.SuppressErrorsAnnotation" flags="ng" index="15s5l7">
@@ -235,7 +235,7 @@
     </language>
     <language id="c7fb639f-be78-4307-89b0-b5959c3fa8c8" name="jetbrains.mps.lang.text">
       <concept id="1094247804558289146" name="jetbrains.mps.lang.text.structure.BulletLine" flags="ng" index="2DRihI" />
-      <concept id="5106752179536586436" name="jetbrains.mps.lang.text.structure.IndentedPoint" flags="ng" index="2RT3b8">
+      <concept id="5106752179536586436" name="jetbrains.mps.lang.text.structure.IndentedPoint" flags="ngI" index="2RT3b8">
         <property id="5106752179536586491" name="indentation" index="2RT3bR" />
       </concept>
       <concept id="155656958578482948" name="jetbrains.mps.lang.text.structure.Word" flags="nn" index="3oM_SD">
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.generic.sandbox._010_smoke_user_defined_linters.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.generic.sandbox._010_smoke_user_defined_linters.mps
index 2386f0fb..fd42c45c 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.generic.sandbox._010_smoke_user_defined_linters.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.generic.sandbox._010_smoke_user_defined_linters.mps
@@ -4,7 +4,7 @@
   <attribute name="doNotGenerate" value="false" />
   <languages>
     <use id="40ab19e9-751a-4433-b645-0e65160e58a0" name="org.mpsqa.lint.generic" version="1" />
-    <use id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections" version="1" />
+    <use id="83888646-71ce-4f1c-9c53-c54016f6ad4f" name="jetbrains.mps.baseLanguage.collections" version="2" />
     <use id="c7fb639f-be78-4307-89b0-b5959c3fa8c8" name="jetbrains.mps.lang.text" version="0" />
     <use id="fd392034-7849-419d-9071-12563d152375" name="jetbrains.mps.baseLanguage.closures" version="0" />
   </languages>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.mps_lang.linters_library.performance_generator.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.mps_lang.linters_library.performance_generator.mps
index 45a223ab..7ec3bbc2 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.mps_lang.linters_library.performance_generator.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.generic.sandbox/models/org.mpsqa.lint.mps_lang.linters_library.performance_generator.mps
@@ -712,7 +712,7 @@
                               <ref role="3uigEE" to="yo81:5mqBoD3U3WC" resolve="IResource" />
                             </node>
                             <node concept="37vLTw" id="7H5j78q03de" role="I$8f6">
-                              <ref role="3cqZAo" node="7H5j78q03d8" resolve="resources" />
+                              <ref role="3cqZAo" node="7H5j78q03d8" resolve="_resources" />
                             </node>
                           </node>
                         </node>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
index 2aff1282..312d3c9b 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.behavior_aspect.mps
@@ -49,7 +49,7 @@
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
-      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
         <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
       </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
@@ -80,7 +80,7 @@
         <child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
       </concept>
       <concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -106,7 +106,7 @@
       <concept id="7741759128795038157" name="org.mpsqa.lint.generic.structure.CheckableScriptParameter" flags="ng" index="2j1K4_">
         <child id="7741759128795045740" name="type" index="2j1LY4" />
       </concept>
-      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ng" index="2j1LY6">
+      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ngI" index="2j1LY6">
         <child id="7741759128795065655" name="parValues" index="2j1YRv" />
       </concept>
       <concept id="7741759128795045754" name="org.mpsqa.lint.generic.structure.CheckableScriptParameterRef" flags="ng" index="2j1LYi">
@@ -116,7 +116,7 @@
         <child id="7741759128795045752" name="exp" index="2j1LYg" />
         <child id="7741759128795065723" name="paramRef" index="2j1YQj" />
       </concept>
-      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ng" index="3miP$Z">
+      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ngI" index="3miP$Z">
         <property id="7008376823202030902" name="skipEvaluation" index="3miQiw" />
       </concept>
       <concept id="3423774024185833116" name="org.mpsqa.lint.generic.structure.NodeReferenceWord" flags="ng" index="3Djtr9">
@@ -125,7 +125,7 @@
       <concept id="3423774024185833128" name="org.mpsqa.lint.generic.structure.NamedFullyQualifiedNodeReference" flags="ng" index="3DjtrX">
         <reference id="3423774024185833136" name="node" index="3Djtr_" />
       </concept>
-      <concept id="2940128608225929719" name="org.mpsqa.lint.generic.structure.IHaveConceptDeclarationReference" flags="ng" index="1Jy4qj">
+      <concept id="2940128608225929719" name="org.mpsqa.lint.generic.structure.IHaveConceptDeclarationReference" flags="ngI" index="1Jy4qj">
         <reference id="1166049300910" name="conceptDeclaration" index="1XX52x" />
       </concept>
       <concept id="2940128608222714821" name="org.mpsqa.lint.generic.structure.NodeCheckingFunction" flags="ig" index="1JQnix" />
@@ -185,7 +185,7 @@
       </concept>
     </language>
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.build_scripts.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.build_scripts.mps
index 597d1ad1..7bad4db8 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.build_scripts.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.build_scripts.mps
@@ -46,7 +46,7 @@
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
-      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
         <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
       </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
@@ -88,7 +88,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -101,7 +101,7 @@
         <reference id="1107535924139" name="classifier" index="3uigEE" />
         <child id="1109201940907" name="parameter" index="11_B2D" />
       </concept>
-      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
+      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ngI" index="1B3ioH">
         <child id="1178549979242" name="visibility" index="1B3o_S" />
       </concept>
       <concept id="1146644602865" name="jetbrains.mps.baseLanguage.structure.PublicVisibility" flags="nn" index="3Tm1VV" />
@@ -129,7 +129,7 @@
       </concept>
     </language>
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_editor.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_editor.mps
index 31b528a8..fe1a4612 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_editor.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_editor.mps
@@ -132,7 +132,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -154,7 +154,7 @@
         <child id="8276990574895933173" name="catchBody" index="1zc67A" />
         <child id="8276990574895933172" name="throwable" index="1zc67B" />
       </concept>
-      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
+      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ngI" index="1B3ioH">
         <child id="1178549979242" name="visibility" index="1B3o_S" />
       </concept>
       <concept id="5351203823916750322" name="jetbrains.mps.baseLanguage.structure.TryUniversalStatement" flags="nn" index="3J1_TO">
@@ -180,7 +180,7 @@
       <concept id="7741759128795038157" name="org.mpsqa.lint.generic.structure.CheckableScriptParameter" flags="ng" index="2j1K4_">
         <child id="7741759128795045740" name="type" index="2j1LY4" />
       </concept>
-      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ng" index="2j1LY6">
+      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ngI" index="2j1LY6">
         <child id="7741759128795065655" name="parValues" index="2j1YRv" />
       </concept>
       <concept id="7741759128795045754" name="org.mpsqa.lint.generic.structure.CheckableScriptParameterRef" flags="ng" index="2j1LYi">
@@ -193,7 +193,7 @@
       <concept id="7679435328618353697" name="org.mpsqa.lint.generic.structure.FormatException" flags="ng" index="vsK6v">
         <child id="7679435328618377120" name="exception" index="vsfCu" />
       </concept>
-      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ng" index="3miP$Z">
+      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ngI" index="3miP$Z">
         <property id="7008376823202030902" name="skipEvaluation" index="3miQiw" />
       </concept>
       <concept id="2555875871752198907" name="org.mpsqa.lint.generic.structure.ConceptFunctionParameter_MPSProject" flags="ng" index="1MG55F" />
@@ -227,7 +227,7 @@
       <concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
         <property id="1193676396447" name="virtualPackage" index="3GE5qa" />
       </concept>
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_typesystem.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_typesystem.mps
index bc6c136a..c04b7ba4 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_typesystem.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_typesystem.mps
@@ -55,7 +55,7 @@
         <child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
       </concept>
       <concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -68,7 +68,7 @@
       <concept id="7741759128795038157" name="org.mpsqa.lint.generic.structure.CheckableScriptParameter" flags="ng" index="2j1K4_">
         <child id="7741759128795045740" name="type" index="2j1LY4" />
       </concept>
-      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ng" index="2j1LY6">
+      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ngI" index="2j1LY6">
         <child id="7741759128795065655" name="parValues" index="2j1YRv" />
       </concept>
       <concept id="7741759128795045754" name="org.mpsqa.lint.generic.structure.CheckableScriptParameterRef" flags="ng" index="2j1LYi">
@@ -78,7 +78,7 @@
         <child id="7741759128795045752" name="exp" index="2j1LYg" />
         <child id="7741759128795065723" name="paramRef" index="2j1YQj" />
       </concept>
-      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ng" index="3miP$Z">
+      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ngI" index="3miP$Z">
         <property id="7008376823202030902" name="skipEvaluation" index="3miQiw" />
       </concept>
       <concept id="2555875871752198907" name="org.mpsqa.lint.generic.structure.ConceptFunctionParameter_MPSProject" flags="ng" index="1MG55F" />
@@ -94,7 +94,7 @@
       <concept id="1138055754698" name="jetbrains.mps.lang.smodel.structure.SNodeType" flags="in" index="3Tqbb2" />
     </language>
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_utils.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_utils.mps
index a2d3c437..e94bf09f 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_utils.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.performance_utils.mps
@@ -46,7 +46,7 @@
       <concept id="1188207840427" name="jetbrains.mps.baseLanguage.structure.AnnotationInstance" flags="nn" index="2AHcQZ">
         <reference id="1188208074048" name="annotation" index="2AI5Lk" />
       </concept>
-      <concept id="1188208481402" name="jetbrains.mps.baseLanguage.structure.HasAnnotation" flags="ng" index="2AJDlI">
+      <concept id="1188208481402" name="jetbrains.mps.baseLanguage.structure.HasAnnotation" flags="ngI" index="2AJDlI">
         <child id="1188208488637" name="annotation" index="2AJF6D" />
       </concept>
       <concept id="1095950406618" name="jetbrains.mps.baseLanguage.structure.DivExpression" flags="nn" index="FJ1c_" />
@@ -89,7 +89,7 @@
         <property id="1176718929932" name="isFinal" index="3TUv4t" />
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
-      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
         <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
       </concept>
       <concept id="1109279763828" name="jetbrains.mps.baseLanguage.structure.TypeVariableDeclaration" flags="ng" index="16euLQ" />
@@ -145,7 +145,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -173,7 +173,7 @@
       <concept id="8276990574909231788" name="jetbrains.mps.baseLanguage.structure.FinallyClause" flags="ng" index="1wplmZ">
         <child id="8276990574909234106" name="finallyBody" index="1wplMD" />
       </concept>
-      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ng" index="1B3ioH">
+      <concept id="1178549954367" name="jetbrains.mps.baseLanguage.structure.IVisible" flags="ngI" index="1B3ioH">
         <child id="1178549979242" name="visibility" index="1B3o_S" />
       </concept>
       <concept id="5351203823916750322" name="jetbrains.mps.baseLanguage.structure.TryUniversalStatement" flags="nn" index="3J1_TO">
@@ -268,7 +268,7 @@
       <concept id="1133920641626" name="jetbrains.mps.lang.core.structure.BaseConcept" flags="ng" index="2VYdi">
         <child id="5169995583184591170" name="smodelAttribute" index="lGtFl" />
       </concept>
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
       <concept id="709746936026466394" name="jetbrains.mps.lang.core.structure.ChildAttribute" flags="ng" index="3VBwX9">
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.structure_aspect.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.structure_aspect.mps
index 53df526a..64cb46ef 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.structure_aspect.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.structure_aspect.mps
@@ -43,7 +43,7 @@
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
-      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
         <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
       </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
@@ -80,7 +80,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -107,7 +107,7 @@
       <concept id="7741759128795038157" name="org.mpsqa.lint.generic.structure.CheckableScriptParameter" flags="ng" index="2j1K4_">
         <child id="7741759128795045740" name="type" index="2j1LY4" />
       </concept>
-      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ng" index="2j1LY6">
+      <concept id="7741759128795045742" name="org.mpsqa.lint.generic.structure.IScriptsParametersAware" flags="ngI" index="2j1LY6">
         <child id="7741759128795065655" name="parValues" index="2j1YRv" />
       </concept>
       <concept id="7741759128795045754" name="org.mpsqa.lint.generic.structure.CheckableScriptParameterRef" flags="ng" index="2j1LYi">
@@ -117,7 +117,7 @@
         <child id="7741759128795045752" name="exp" index="2j1LYg" />
         <child id="7741759128795065723" name="paramRef" index="2j1YQj" />
       </concept>
-      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ng" index="3miP$Z">
+      <concept id="7008376823202027689" name="org.mpsqa.lint.generic.structure.ICanSkipCheckerEvaluation" flags="ngI" index="3miP$Z">
         <property id="7008376823202030902" name="skipEvaluation" index="3miQiw" />
       </concept>
       <concept id="2555875871752198907" name="org.mpsqa.lint.generic.structure.ConceptFunctionParameter_MPSProject" flags="ng" index="1MG55F" />
@@ -175,7 +175,7 @@
       </concept>
     </language>
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.tests.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.tests.mps
index 33268426..2763d7d5 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.tests.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.tests.mps
@@ -72,7 +72,7 @@
       <concept id="1081516740877" name="jetbrains.mps.baseLanguage.structure.NotExpression" flags="nn" index="3fqX7Q">
         <child id="1081516765348" name="expression" index="3fr31v" />
       </concept>
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -120,7 +120,7 @@
       </concept>
     </language>
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>
diff --git a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.typesystem_aspect.mps b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.typesystem_aspect.mps
index 156964b0..38987d00 100644
--- a/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.typesystem_aspect.mps
+++ b/code/languages/org.mpsqa.lint/solutions/org.mpsqa.lint.mps_lang.linters_library/models/org.mpsqa.lint.mps_lang.linters_library.typesystem_aspect.mps
@@ -36,7 +36,7 @@
       <concept id="1068431474542" name="jetbrains.mps.baseLanguage.structure.VariableDeclaration" flags="ng" index="33uBYm">
         <child id="1068431790190" name="initializer" index="33vP2m" />
       </concept>
-      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ng" index="366HgL">
+      <concept id="1513279640923991009" name="jetbrains.mps.baseLanguage.structure.IGenericClassCreator" flags="ngI" index="366HgL">
         <property id="1513279640906337053" name="inferTypeParams" index="373rjd" />
       </concept>
       <concept id="1068498886296" name="jetbrains.mps.baseLanguage.structure.VariableReference" flags="nn" index="37vLTw">
@@ -64,7 +64,7 @@
         <child id="1068581242865" name="localVariableDeclaration" index="3cpWs9" />
       </concept>
       <concept id="1068581242863" name="jetbrains.mps.baseLanguage.structure.LocalVariableDeclaration" flags="nr" index="3cpWsn" />
-      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ng" index="1ndlxa">
+      <concept id="1204053956946" name="jetbrains.mps.baseLanguage.structure.IMethodCall" flags="ngI" index="1ndlxa">
         <reference id="1068499141037" name="baseMethodDeclaration" index="37wK5l" />
         <child id="1068499141038" name="actualArgument" index="37wK5m" />
       </concept>
@@ -78,10 +78,10 @@
       </concept>
     </language>
     <language id="40ab19e9-751a-4433-b645-0e65160e58a0" name="org.mpsqa.lint.generic">
-      <concept id="1024891882119954681" name="org.mpsqa.lint.generic.structure.ISeverityLevelAwareChecker" flags="ng" index="2oM2l5">
+      <concept id="1024891882119954681" name="org.mpsqa.lint.generic.structure.ISeverityLevelAwareChecker" flags="ngI" index="2oM2l5">
         <property id="1024891882119955433" name="reportLevel" index="2oM2pl" />
       </concept>
-      <concept id="7223240310078271419" name="org.mpsqa.lint.generic.structure.ILinterResultsContainer" flags="ng" index="3dgnlL">
+      <concept id="7223240310078271419" name="org.mpsqa.lint.generic.structure.ILinterResultsContainer" flags="ngI" index="3dgnlL">
         <child id="7223240310078271420" name="violations" index="3dgnlQ" />
       </concept>
       <concept id="7223240310078271416" name="org.mpsqa.lint.generic.structure.ResultEntry" flags="ng" index="3dgnlM">
@@ -89,7 +89,7 @@
         <property id="8230153551040655111" name="resultNodeModelId" index="3qxsSb" />
         <property id="8230153551040654991" name="resultNodeId" index="3qxsY3" />
       </concept>
-      <concept id="2940128608225929719" name="org.mpsqa.lint.generic.structure.IHaveConceptDeclarationReference" flags="ng" index="1Jy4qj">
+      <concept id="2940128608225929719" name="org.mpsqa.lint.generic.structure.IHaveConceptDeclarationReference" flags="ngI" index="1Jy4qj">
         <reference id="1166049300910" name="conceptDeclaration" index="1XX52x" />
       </concept>
       <concept id="2940128608222714821" name="org.mpsqa.lint.generic.structure.NodeCheckingFunction" flags="ig" index="1JQnix" />
@@ -116,7 +116,7 @@
       </concept>
     </language>
     <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
-      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ng" index="TrEIO">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
         <property id="1169194664001" name="name" index="TrG5h" />
       </concept>
     </language>

From cc61f6a65de1608509c43156025a01c2e734dd8f Mon Sep 17 00:00:00 2001
From: Daniel Ratiu <ratiud@mail.google.com>
Date: Wed, 13 Nov 2024 13:22:16 +0100
Subject: [PATCH 41/42] arch: added support for forbidden dependencies

---
 .../languages/org.mpsqa.arch/.mps/modules.xml |   1 +
 .../models/org.mpsqa.arch.editor.mps          |  18 ++++
 .../models/org.mpsqa.arch.structure.mps       |   8 ++
 .../models/org.mpsqa.arch.typesystem.mps      |  79 ++++++++++++++
 ...end_upon.generator.templates@generator.mps |  24 +++++
 ...ge_no_other_shall_depend_upon.behavior.mps |  12 +++
 ...no_other_shall_depend_upon.constraints.mps |  19 ++++
 ...uage_no_other_shall_depend_upon.editor.mps |  12 +++
 ...e_no_other_shall_depend_upon.structure.mps |  10 ++
 ..._no_other_shall_depend_upon.typesystem.mps |  11 ++
 ...ch.language_no_other_shall_depend_upon.mpl | 102 ++++++++++++++++++
 ...qa.arch._010_simple_dependencies@tests.mps |  89 +++++++++++++++
 12 files changed, 385 insertions(+)
 create mode 100644 code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/generator/templates/test.org.mpsqa.arch.language_no_other_shall_depend_upon.generator.templates@generator.mps
 create mode 100644 code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.behavior.mps
 create mode 100644 code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.constraints.mps
 create mode 100644 code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.editor.mps
 create mode 100644 code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.structure.mps
 create mode 100644 code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.typesystem.mps
 create mode 100644 code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/test.org.mpsqa.arch.language_no_other_shall_depend_upon.mpl

diff --git a/code/languages/org.mpsqa.arch/.mps/modules.xml b/code/languages/org.mpsqa.arch/.mps/modules.xml
index 2c5d8792..b10c3c8b 100644
--- a/code/languages/org.mpsqa.arch/.mps/modules.xml
+++ b/code/languages/org.mpsqa.arch/.mps/modules.xml
@@ -6,6 +6,7 @@
       <modulePath path="$PROJECT_DIR$/languages/test.org.mpsqa.arch.baselang/test.org.mpsqa.arch.baselang.mpl" folder="test" />
       <modulePath path="$PROJECT_DIR$/languages/test.org.mpsqa.arch.ext.ext/test.org.mpsqa.arch.ext.ext.mpl" folder="test" />
       <modulePath path="$PROJECT_DIR$/languages/test.org.mpsqa.arch.ext/test.org.mpsqa.arch.ext.mpl" folder="test" />
+      <modulePath path="$PROJECT_DIR$/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/test.org.mpsqa.arch.language_no_other_shall_depend_upon.mpl" folder="" />
       <modulePath path="$PROJECT_DIR$/solutions/org.mpsqa.arch.pluginSolution/org.mpsqa.arch.pluginSolution.msd" folder="" />
       <modulePath path="$PROJECT_DIR$/solutions/org.mpsqa.arch.sandbox/org.mpsqa.arch.sandbox.msd" folder="" />
       <modulePath path="$PROJECT_DIR$/solutions/test.org.mpsqa.arch.testdata/test.org.mpsqa.arch.testdata.msd" folder="test" />
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
index 1eacddd8..81ce67a8 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.editor.mps
@@ -1169,5 +1169,23 @@
     </node>
     <node concept="22hDWj" id="Te1zv$IzfP" role="22hAXT" />
   </node>
+  <node concept="24kQdi" id="yxqw$qsTSZ">
+    <property role="3GE5qa" value="dependencies" />
+    <ref role="1XX52x" to="ryx8:yxqw$qsTSY" resolve="ForbiddenDependency" />
+    <node concept="3EZMnI" id="yxqw$qsTT1" role="2wV5jI">
+      <node concept="3F0ifn" id="yxqw$qsTT2" role="3EZMnx">
+        <property role="3F0ifm" value="forbidden dependency:" />
+        <node concept="VechU" id="yxqw$qsU2l" role="3F10Kt">
+          <property role="Vb096" value="fLwANPn/red" />
+        </node>
+      </node>
+      <node concept="3F2HdR" id="yxqw$qsTT3" role="3EZMnx">
+        <property role="2czwfO" value="," />
+        <ref role="1NtTu8" to="ryx8:6MUZd5UjK7L" resolve="dependsOn" />
+        <node concept="2iRfu4" id="yxqw$qsTT4" role="2czzBx" />
+      </node>
+      <node concept="2iRfu4" id="yxqw$qsTT5" role="2iSdaV" />
+    </node>
+  </node>
 </model>
 
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.structure.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.structure.mps
index e7bb07ae..936dd397 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.structure.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.structure.mps
@@ -264,5 +264,13 @@
       <property role="TrG5h" value="NODE_LOCK" />
     </node>
   </node>
+  <node concept="1TIwiD" id="yxqw$qsTSY">
+    <property role="EcuMT" value="621894810884873790" />
+    <property role="3GE5qa" value="dependencies" />
+    <property role="TrG5h" value="ForbiddenDependency" />
+    <property role="34LRSv" value="forbidden dependency" />
+    <property role="R4oN_" value="a dependency which is forbidden" />
+    <ref role="1TJDcQ" node="6MUZd5Uj9MQ" resolve="ComponentDependency" />
+  </node>
 </model>
 
diff --git a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
index a6512a14..b6832e19 100644
--- a/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
+++ b/code/languages/org.mpsqa.arch/languages/org.mpsqa.arch/models/org.mpsqa.arch.typesystem.mps
@@ -2738,5 +2738,84 @@
       </node>
     </node>
   </node>
+  <node concept="18kY7G" id="yxqw$qsU2m">
+    <property role="TrG5h" value="check_ForbiddenDependency" />
+    <property role="3GE5qa" value="dependencies" />
+    <node concept="3clFbS" id="yxqw$qsU2n" role="18ibNy">
+      <node concept="2Gpval" id="yxqw$qsU35" role="3cqZAp">
+        <node concept="2GrKxI" id="yxqw$qsU36" role="2Gsz3X">
+          <property role="TrG5h" value="dep" />
+        </node>
+        <node concept="2OqwBi" id="yxqw$qsUey" role="2GsD0m">
+          <node concept="1YBJjd" id="yxqw$qsU3t" role="2Oq$k0">
+            <ref role="1YBMHb" node="yxqw$qsU2p" resolve="forbiddenDependency" />
+          </node>
+          <node concept="3Tsc0h" id="yxqw$qsW4s" role="2OqNvi">
+            <ref role="3TtcxE" to="ryx8:6MUZd5UjK7L" resolve="dependsOn" />
+          </node>
+        </node>
+        <node concept="3clFbS" id="yxqw$qsU38" role="2LFqv$">
+          <node concept="3clFbJ" id="yxqw$qsW8U" role="3cqZAp">
+            <node concept="3fqX7Q" id="yxqw$qsXb7" role="3clFbw">
+              <node concept="2OqwBi" id="yxqw$qsXb9" role="3fr31v">
+                <node concept="2OqwBi" id="yxqw$qsXba" role="2Oq$k0">
+                  <node concept="2GrUjf" id="yxqw$qsXbb" role="2Oq$k0">
+                    <ref role="2Gs0qQ" node="yxqw$qsU36" resolve="dep" />
+                  </node>
+                  <node concept="3TrcHB" id="yxqw$qsXbc" role="2OqNvi">
+                    <ref role="3TsBF5" to="ryx8:Te1zv$_jA0" resolve="lock" />
+                  </node>
+                </node>
+                <node concept="21noJN" id="yxqw$qsXbd" role="2OqNvi">
+                  <node concept="21nZrQ" id="yxqw$qsXbe" role="21noJM">
+                    <ref role="21nZrZ" to="ryx8:GdL2WcU97I" resolve="NODE_LOCK" />
+                  </node>
+                </node>
+              </node>
+            </node>
+            <node concept="3clFbS" id="yxqw$qsW8W" role="3clFbx">
+              <node concept="2MkqsV" id="yxqw$qsZgg" role="3cqZAp">
+                <node concept="Xl_RD" id="yxqw$qsZgp" role="2MkJ7o">
+                  <property role="Xl_RC" value="all forbidden dependencies shall be NODE locked" />
+                </node>
+                <node concept="2GrUjf" id="yxqw$qsZhX" role="1urrMF">
+                  <ref role="2Gs0qQ" node="yxqw$qsU36" resolve="dep" />
+                </node>
+              </node>
+            </node>
+          </node>
+          <node concept="3clFbJ" id="yxqw$qsZip" role="3cqZAp">
+            <node concept="3fqX7Q" id="yxqw$qsZiq" role="3clFbw">
+              <node concept="2OqwBi" id="yxqw$qsZir" role="3fr31v">
+                <node concept="2OqwBi" id="yxqw$qsZis" role="2Oq$k0">
+                  <node concept="2GrUjf" id="yxqw$qsZit" role="2Oq$k0">
+                    <ref role="2Gs0qQ" node="yxqw$qsU36" resolve="dep" />
+                  </node>
+                  <node concept="3Tsc0h" id="yxqw$qsZVM" role="2OqNvi">
+                    <ref role="3TtcxE" to="ryx8:Te1zv$_lYI" resolve="whitelist" />
+                  </node>
+                </node>
+                <node concept="1v1jN8" id="yxqw$qt3Ao" role="2OqNvi" />
+              </node>
+            </node>
+            <node concept="3clFbS" id="yxqw$qsZix" role="3clFbx">
+              <node concept="2MkqsV" id="yxqw$qsZiy" role="3cqZAp">
+                <node concept="Xl_RD" id="yxqw$qsZiz" role="2MkJ7o">
+                  <property role="Xl_RC" value="all forbidden dependencies shall have empty whitelists" />
+                </node>
+                <node concept="2GrUjf" id="yxqw$qsZi$" role="1urrMF">
+                  <ref role="2Gs0qQ" node="yxqw$qsU36" resolve="dep" />
+                </node>
+              </node>
+            </node>
+          </node>
+        </node>
+      </node>
+    </node>
+    <node concept="1YaCAy" id="yxqw$qsU2p" role="1YuTPh">
+      <property role="TrG5h" value="forbiddenDependency" />
+      <ref role="1YaFvo" to="ryx8:yxqw$qsTSY" resolve="ForbiddenDependency" />
+    </node>
+  </node>
 </model>
 
diff --git a/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/generator/templates/test.org.mpsqa.arch.language_no_other_shall_depend_upon.generator.templates@generator.mps b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/generator/templates/test.org.mpsqa.arch.language_no_other_shall_depend_upon.generator.templates@generator.mps
new file mode 100644
index 00000000..9dadc94d
--- /dev/null
+++ b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/generator/templates/test.org.mpsqa.arch.language_no_other_shall_depend_upon.generator.templates@generator.mps
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<model ref="r:1d2b0346-8bd9-4284-8203-23dd29045b0b(test.org.mpsqa.arch.language_no_other_shall_depend_upon.generator.templates@generator)">
+  <persistence version="9" />
+  <languages>
+    <devkit ref="a2eb3a43-fcc2-4200-80dc-c60110c4862d(jetbrains.mps.devkit.templates)" />
+  </languages>
+  <imports>
+    <import index="adb4" ref="r:5b9b96ac-6395-4a4e-8264-c09584d90f97(test.org.mpsqa.arch.language_no_other_shall_depend_upon.structure)" />
+  </imports>
+  <registry>
+    <language id="b401a680-8325-4110-8fd3-84331ff25bef" name="jetbrains.mps.lang.generator">
+      <concept id="1095416546421" name="jetbrains.mps.lang.generator.structure.MappingConfiguration" flags="ig" index="bUwia" />
+    </language>
+    <language id="ceab5195-25ea-4f22-9b92-103b95ca8c0c" name="jetbrains.mps.lang.core">
+      <concept id="1169194658468" name="jetbrains.mps.lang.core.structure.INamedConcept" flags="ngI" index="TrEIO">
+        <property id="1169194664001" name="name" index="TrG5h" />
+      </concept>
+    </language>
+  </registry>
+  <node concept="bUwia" id="yxqw$qurrl">
+    <property role="TrG5h" value="main" />
+  </node>
+</model>
+
diff --git a/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.behavior.mps b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.behavior.mps
new file mode 100644
index 00000000..31ca6ecb
--- /dev/null
+++ b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.behavior.mps
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<model ref="r:62fb1273-e73d-4d2c-881e-81ffd6eac472(test.org.mpsqa.arch.language_no_other_shall_depend_upon.behavior)">
+  <persistence version="9" />
+  <languages>
+    <use id="7866978e-a0f0-4cc7-81bc-4d213d9375e1" name="jetbrains.mps.lang.smodel" version="19" />
+    <use id="af65afd8-f0dd-4942-87d9-63a55f2a9db1" name="jetbrains.mps.lang.behavior" version="2" />
+    <devkit ref="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
+  </languages>
+  <imports />
+  <registry />
+</model>
+
diff --git a/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.constraints.mps b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.constraints.mps
new file mode 100644
index 00000000..a28ea8fc
--- /dev/null
+++ b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.constraints.mps
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<model ref="r:6acd3eeb-ab34-4f7d-bb21-d1cbefbb3286(test.org.mpsqa.arch.language_no_other_shall_depend_upon.constraints)">
+  <persistence version="9" />
+  <languages>
+    <use id="5dae8159-ab99-46bb-a40d-0cee30ee7018" name="jetbrains.mps.lang.constraints.rules.kinds" version="0" />
+    <use id="ea3159bf-f48e-4720-bde2-86dba75f0d34" name="jetbrains.mps.lang.context.defs" version="0" />
+    <use id="e51810c5-7308-4642-bcb6-469e61b5dd18" name="jetbrains.mps.lang.constraints.msg.specification" version="0" />
+    <use id="134c38d4-e3af-4d9e-b069-1c7df0a4005d" name="jetbrains.mps.lang.constraints.rules.skeleton" version="0" />
+    <use id="b3551702-269c-4f05-ba61-58060cef4292" name="jetbrains.mps.lang.rulesAndMessages" version="0" />
+    <use id="3f4bc5f5-c6c1-4a28-8b10-c83066ffa4a1" name="jetbrains.mps.lang.constraints" version="6" />
+    <use id="13744753-c81f-424a-9c1b-cf8943bf4e86" name="jetbrains.mps.lang.sharedConcepts" version="0" />
+    <use id="3ad5badc-1d9c-461c-b7b1-fa2fcd0a0ae7" name="jetbrains.mps.lang.context" version="0" />
+    <use id="ad93155d-79b2-4759-b10c-55123e763903" name="jetbrains.mps.lang.messages" version="0" />
+    <devkit ref="00000000-0000-4000-0000-5604ebd4f22c(jetbrains.mps.devkit.aspect.constraints)" />
+  </languages>
+  <imports />
+  <registry />
+</model>
+
diff --git a/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.editor.mps b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.editor.mps
new file mode 100644
index 00000000..14e4b0d6
--- /dev/null
+++ b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.editor.mps
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<model ref="r:7ae90d27-c607-4f55-b718-2b24949b4a84(test.org.mpsqa.arch.language_no_other_shall_depend_upon.editor)">
+  <persistence version="9" />
+  <languages>
+    <use id="18bc6592-03a6-4e29-a83a-7ff23bde13ba" name="jetbrains.mps.lang.editor" version="14" />
+    <use id="aee9cad2-acd4-4608-aef2-0004f6a1cdbd" name="jetbrains.mps.lang.actions" version="4" />
+    <devkit ref="fbc25dd2-5da4-483a-8b19-70928e1b62d7(jetbrains.mps.devkit.general-purpose)" />
+  </languages>
+  <imports />
+  <registry />
+</model>
+
diff --git a/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.structure.mps b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.structure.mps
new file mode 100644
index 00000000..c07e7ae6
--- /dev/null
+++ b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.structure.mps
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<model ref="r:5b9b96ac-6395-4a4e-8264-c09584d90f97(test.org.mpsqa.arch.language_no_other_shall_depend_upon.structure)">
+  <persistence version="9" />
+  <languages>
+    <devkit ref="78434eb8-b0e5-444b-850d-e7c4ad2da9ab(jetbrains.mps.devkit.aspect.structure)" />
+  </languages>
+  <imports />
+  <registry />
+</model>
+
diff --git a/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.typesystem.mps b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.typesystem.mps
new file mode 100644
index 00000000..8ce82f99
--- /dev/null
+++ b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/models/test.org.mpsqa.arch.language_no_other_shall_depend_upon.typesystem.mps
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<model ref="r:f8151e4e-2bf4-4877-ad12-16fb878936d2(test.org.mpsqa.arch.language_no_other_shall_depend_upon.typesystem)">
+  <persistence version="9" />
+  <languages>
+    <use id="7a5dda62-9140-4668-ab76-d5ed1746f2b2" name="jetbrains.mps.lang.typesystem" version="5" />
+    <devkit ref="00000000-0000-4000-0000-1de82b3a4936(jetbrains.mps.devkit.aspect.typesystem)" />
+  </languages>
+  <imports />
+  <registry />
+</model>
+
diff --git a/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/test.org.mpsqa.arch.language_no_other_shall_depend_upon.mpl b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/test.org.mpsqa.arch.language_no_other_shall_depend_upon.mpl
new file mode 100644
index 00000000..ca57ccd2
--- /dev/null
+++ b/code/languages/org.mpsqa.arch/languages/test.org.mpsqa.arch.language_no_other_shall_depend_upon/test.org.mpsqa.arch.language_no_other_shall_depend_upon.mpl
@@ -0,0 +1,102 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<language namespace="test.org.mpsqa.arch.language_no_other_shall_depend_upon" uuid="c07bf2c7-3019-438f-9e89-c561747b91bf" languageVersion="0" moduleVersion="0">
+  <models>
+    <modelRoot type="default" contentPath="${module}">
+      <sourceRoot location="models" />
+    </modelRoot>
+  </models>
+  <facets>
+    <facet compile="mps" classes="mps" ext="yes" type="java">
+      <classes generated="true" path="${module}/classes_gen" />
+    </facet>
+  </facets>
+  <accessoryModels />
+  <generators>
+    <generator alias="main" namespace="test.org.mpsqa.arch.language_no_other_shall_depend_upon.generator" uuid="dd8ec257-a132-43aa-b9ae-bf3a7b51d502">
+      <models>
+        <modelRoot type="default" contentPath="${module}/generator">
+          <sourceRoot location="templates" />
+        </modelRoot>
+      </models>
+      <facets>
+        <facet compile="mps" classes="mps" ext="no" type="java">
+          <classes generated="true" path="${module}/generator/classes_gen" />
+        </facet>
+      </facets>
+      <external-templates />
+      <languageVersions>
+        <language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
+        <language slang="l:fd392034-7849-419d-9071-12563d152375:jetbrains.mps.baseLanguage.closures" version="0" />
+        <language slang="l:83888646-71ce-4f1c-9c53-c54016f6ad4f:jetbrains.mps.baseLanguage.collections" version="2" />
+        <language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
+        <language slang="l:760a0a8c-eabb-4521-8bfd-65db761a9ba3:jetbrains.mps.baseLanguage.logging" version="0" />
+        <language slang="l:a247e09e-2435-45ba-b8d2-07e93feba96a:jetbrains.mps.baseLanguage.tuples" version="0" />
+        <language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="2" />
+        <language slang="l:b401a680-8325-4110-8fd3-84331ff25bef:jetbrains.mps.lang.generator" version="4" />
+        <language slang="l:d7706f63-9be2-479c-a3da-ae92af1e64d5:jetbrains.mps.lang.generator.generationContext" version="2" />
+        <language slang="l:289fcc83-6543-41e8-a5ca-768235715ce4:jetbrains.mps.lang.generator.generationParameters" version="0" />
+        <language slang="l:446c26eb-2b7b-4bf0-9b35-f83fa582753e:jetbrains.mps.lang.modelapi" version="0" />
+        <language slang="l:3a13115c-633c-4c5c-bbcc-75c4219e9555:jetbrains.mps.lang.quotation" version="5" />
+        <language slang="l:13744753-c81f-424a-9c1b-cf8943bf4e86:jetbrains.mps.lang.sharedConcepts" version="0" />
+        <language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="19" />
+        <language slang="l:c7fb639f-be78-4307-89b0-b5959c3fa8c8:jetbrains.mps.lang.text" version="0" />
+        <language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
+      </languageVersions>
+      <dependencyVersions>
+        <module reference="3f233e7f-b8a6-46d2-a57f-795d56775243(Annotations)" version="0" />
+        <module reference="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" version="0" />
+        <module reference="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" version="0" />
+        <module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
+        <module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
+        <module reference="c07bf2c7-3019-438f-9e89-c561747b91bf(test.org.mpsqa.arch.language_no_other_shall_depend_upon)" version="0" />
+        <module reference="dd8ec257-a132-43aa-b9ae-bf3a7b51d502(test.org.mpsqa.arch.language_no_other_shall_depend_upon.generator)" version="0" />
+      </dependencyVersions>
+      <mapping-priorities />
+    </generator>
+  </generators>
+  <languageVersions>
+    <language slang="l:f3061a53-9226-4cc5-a443-f952ceaf5816:jetbrains.mps.baseLanguage" version="12" />
+    <language slang="l:443f4c36-fcf5-4eb6-9500-8d06ed259e3e:jetbrains.mps.baseLanguage.classifiers" version="0" />
+    <language slang="l:fd392034-7849-419d-9071-12563d152375:jetbrains.mps.baseLanguage.closures" version="0" />
+    <language slang="l:83888646-71ce-4f1c-9c53-c54016f6ad4f:jetbrains.mps.baseLanguage.collections" version="2" />
+    <language slang="l:f2801650-65d5-424e-bb1b-463a8781b786:jetbrains.mps.baseLanguage.javadoc" version="2" />
+    <language slang="l:760a0a8c-eabb-4521-8bfd-65db761a9ba3:jetbrains.mps.baseLanguage.logging" version="0" />
+    <language slang="l:a247e09e-2435-45ba-b8d2-07e93feba96a:jetbrains.mps.baseLanguage.tuples" version="0" />
+    <language slang="l:aee9cad2-acd4-4608-aef2-0004f6a1cdbd:jetbrains.mps.lang.actions" version="4" />
+    <language slang="l:af65afd8-f0dd-4942-87d9-63a55f2a9db1:jetbrains.mps.lang.behavior" version="2" />
+    <language slang="l:3f4bc5f5-c6c1-4a28-8b10-c83066ffa4a1:jetbrains.mps.lang.constraints" version="6" />
+    <language slang="l:e51810c5-7308-4642-bcb6-469e61b5dd18:jetbrains.mps.lang.constraints.msg.specification" version="0" />
+    <language slang="l:47257bf3-78d3-470b-89d9-8c3261a61d15:jetbrains.mps.lang.constraints.rules" version="0" />
+    <language slang="l:5dae8159-ab99-46bb-a40d-0cee30ee7018:jetbrains.mps.lang.constraints.rules.kinds" version="0" />
+    <language slang="l:134c38d4-e3af-4d9e-b069-1c7df0a4005d:jetbrains.mps.lang.constraints.rules.skeleton" version="0" />
+    <language slang="l:3ad5badc-1d9c-461c-b7b1-fa2fcd0a0ae7:jetbrains.mps.lang.context" version="0" />
+    <language slang="l:ea3159bf-f48e-4720-bde2-86dba75f0d34:jetbrains.mps.lang.context.defs" version="0" />
+    <language slang="l:ceab5195-25ea-4f22-9b92-103b95ca8c0c:jetbrains.mps.lang.core" version="2" />
+    <language slang="l:f4ad079d-bc71-4ffb-9600-9328705cf998:jetbrains.mps.lang.descriptor" version="0" />
+    <language slang="l:18bc6592-03a6-4e29-a83a-7ff23bde13ba:jetbrains.mps.lang.editor" version="14" />
+    <language slang="l:ad93155d-79b2-4759-b10c-55123e763903:jetbrains.mps.lang.messages" version="0" />
+    <language slang="l:446c26eb-2b7b-4bf0-9b35-f83fa582753e:jetbrains.mps.lang.modelapi" version="0" />
+    <language slang="l:d4615e3b-d671-4ba9-af01-2b78369b0ba7:jetbrains.mps.lang.pattern" version="2" />
+    <language slang="l:3a13115c-633c-4c5c-bbcc-75c4219e9555:jetbrains.mps.lang.quotation" version="5" />
+    <language slang="l:982eb8df-2c96-4bd7-9963-11712ea622e5:jetbrains.mps.lang.resources" version="2" />
+    <language slang="l:b3551702-269c-4f05-ba61-58060cef4292:jetbrains.mps.lang.rulesAndMessages" version="0" />
+    <language slang="l:d8f591ec-4d86-4af2-9f92-a9e93c803ffa:jetbrains.mps.lang.scopes" version="0" />
+    <language slang="l:13744753-c81f-424a-9c1b-cf8943bf4e86:jetbrains.mps.lang.sharedConcepts" version="0" />
+    <language slang="l:7866978e-a0f0-4cc7-81bc-4d213d9375e1:jetbrains.mps.lang.smodel" version="19" />
+    <language slang="l:c72da2b9-7cce-4447-8389-f407dc1158b7:jetbrains.mps.lang.structure" version="9" />
+    <language slang="l:c7fb639f-be78-4307-89b0-b5959c3fa8c8:jetbrains.mps.lang.text" version="0" />
+    <language slang="l:9ded098b-ad6a-4657-bfd9-48636cfe8bc3:jetbrains.mps.lang.traceable" version="0" />
+    <language slang="l:7a5dda62-9140-4668-ab76-d5ed1746f2b2:jetbrains.mps.lang.typesystem" version="5" />
+  </languageVersions>
+  <dependencyVersions>
+    <module reference="3f233e7f-b8a6-46d2-a57f-795d56775243(Annotations)" version="0" />
+    <module reference="6354ebe7-c22a-4a0f-ac54-50b52ab9b065(JDK)" version="0" />
+    <module reference="6ed54515-acc8-4d1e-a16c-9fd6cfe951ea(MPS.Core)" version="0" />
+    <module reference="8865b7a8-5271-43d3-884c-6fd1d9cfdd34(MPS.OpenAPI)" version="0" />
+    <module reference="ceab5195-25ea-4f22-9b92-103b95ca8c0c(jetbrains.mps.lang.core)" version="0" />
+    <module reference="a9e4c532-c5f5-4bb7-99ef-42abb73bbb70(jetbrains.mps.lang.descriptor.aspects)" version="0" />
+    <module reference="c07bf2c7-3019-438f-9e89-c561747b91bf(test.org.mpsqa.arch.language_no_other_shall_depend_upon)" version="0" />
+  </dependencyVersions>
+  <extendedLanguages />
+</language>
+
diff --git a/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps b/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps
index ebddcad4..df9f9a74 100644
--- a/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps
+++ b/code/languages/org.mpsqa.arch/solutions/test.org.mpsqa.arch/models/test.org.mpsqa.arch._010_simple_dependencies@tests.mps
@@ -37,6 +37,7 @@
       </concept>
     </language>
     <language id="6c101563-ba1f-458d-b298-a75634941e0c" name="org.mpsqa.arch">
+      <concept id="621894810884873790" name="org.mpsqa.arch.structure.ForbiddenDependency" flags="ng" index="iOJgR" />
       <concept id="7834852478394622225" name="org.mpsqa.arch.structure.ModuleComponent" flags="ng" index="mXxR0">
         <property id="276423752594287931" name="shortName" index="Z2I3b" />
         <child id="7834852478394622226" name="module" index="mXxR3" />
@@ -512,5 +513,93 @@
       </node>
     </node>
   </node>
+  <node concept="1lH9Xt" id="yxqw$qurAB">
+    <property role="TrG5h" value="_030_forbidden_dependencies_tests" />
+    <property role="3DII0k" value="2hh8MJdVwqX/command" />
+    <node concept="1qefOq" id="yxqw$qurAC" role="1SKRRt">
+      <node concept="mXAGR" id="yxqw$qurAD" role="1qenE9">
+        <property role="TrG5h" value="_010_forbidden_dependencies" />
+        <node concept="mXAGQ" id="yxqw$qurAE" role="mXAGU">
+          <property role="TrG5h" value="base" />
+          <node concept="iOJgR" id="yxqw$qurCN" role="mXAiC">
+            <node concept="mXAj4" id="yxqw$qurCP" role="mXvOw">
+              <property role="3EQNYR" value="GdL2WcU97I/NODE_LOCK" />
+              <ref role="mXAj7" node="yxqw$qurAJ" resolve="ext_do_not_depend_upon" />
+            </node>
+          </node>
+          <node concept="mXxR0" id="yxqw$qurAF" role="mXAiC">
+            <node concept="37shsh" id="yxqw$qurAG" role="mXxR3">
+              <node concept="1dCxOk" id="yxqw$qurAH" role="37shsm">
+                <property role="1XweGW" value="bcaa03af-4226-4b43-a0ed-7ecc5d6748d9" />
+                <property role="1XxBO9" value="test.org.mpsqa.arch.baselang" />
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="Z9REq" id="yxqw$qurAI" role="mXAGU" />
+        <node concept="mXAGQ" id="yxqw$qurAJ" role="mXAGU">
+          <property role="TrG5h" value="ext_do_not_depend_upon" />
+          <node concept="mXxR0" id="yxqw$qurAP" role="mXAiC">
+            <node concept="37shsh" id="yxqw$qurAQ" role="mXxR3">
+              <node concept="1dCxOk" id="yxqw$qurCQ" role="37shsm">
+                <property role="1XweGW" value="c07bf2c7-3019-438f-9e89-c561747b91bf" />
+                <property role="1XxBO9" value="test.org.mpsqa.arch.language_no_other_shall_depend_upon" />
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="Z9REq" id="yxqw$qurAS" role="mXAGU" />
+        <node concept="Z9REq" id="yxqw$qurAT" role="mXAGU" />
+        <node concept="7CXmI" id="yxqw$qurAU" role="lGtFl">
+          <node concept="7OXhh" id="yxqw$qurAV" role="7EUXB">
+            <property role="GvXf4" value="true" />
+          </node>
+        </node>
+      </node>
+    </node>
+    <node concept="1qefOq" id="yxqw$qurCU" role="1SKRRt">
+      <node concept="mXAGR" id="yxqw$qurCV" role="1qenE9">
+        <property role="TrG5h" value="_020_forbidden_dependencies" />
+        <node concept="mXAGQ" id="yxqw$qurCW" role="mXAGU">
+          <property role="TrG5h" value="base" />
+          <node concept="iOJgR" id="yxqw$qurCX" role="mXAiC">
+            <node concept="mXAj4" id="yxqw$qurCY" role="mXvOw">
+              <ref role="mXAj7" node="yxqw$qurD3" resolve="ext_do_not_depend_upon" />
+              <node concept="7CXmI" id="yxqw$qurDh" role="lGtFl">
+                <node concept="1TM$A" id="yxqw$qurDi" role="7EUXB" />
+              </node>
+            </node>
+          </node>
+          <node concept="mXxR0" id="yxqw$qurCZ" role="mXAiC">
+            <node concept="37shsh" id="yxqw$qurD0" role="mXxR3">
+              <node concept="1dCxOk" id="yxqw$qurD1" role="37shsm">
+                <property role="1XweGW" value="bcaa03af-4226-4b43-a0ed-7ecc5d6748d9" />
+                <property role="1XxBO9" value="test.org.mpsqa.arch.baselang" />
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="Z9REq" id="yxqw$qurD2" role="mXAGU" />
+        <node concept="mXAGQ" id="yxqw$qurD3" role="mXAGU">
+          <property role="TrG5h" value="ext_do_not_depend_upon" />
+          <node concept="mXxR0" id="yxqw$qurD4" role="mXAiC">
+            <node concept="37shsh" id="yxqw$qurD5" role="mXxR3">
+              <node concept="1dCxOk" id="yxqw$qurD6" role="37shsm">
+                <property role="1XweGW" value="c07bf2c7-3019-438f-9e89-c561747b91bf" />
+                <property role="1XxBO9" value="test.org.mpsqa.arch.language_no_other_shall_depend_upon" />
+              </node>
+            </node>
+          </node>
+        </node>
+        <node concept="Z9REq" id="yxqw$qurD7" role="mXAGU" />
+        <node concept="Z9REq" id="yxqw$qurD8" role="mXAGU" />
+        <node concept="7CXmI" id="yxqw$qurD9" role="lGtFl">
+          <node concept="7OXhh" id="yxqw$qurDa" role="7EUXB">
+            <property role="GvXf4" value="true" />
+          </node>
+        </node>
+      </node>
+    </node>
+  </node>
 </model>
 

From 94f67ad619d8f56369262b299d545e8733479891 Mon Sep 17 00:00:00 2001
From: Alexander Pann <apann@itemis.com>
Date: Mon, 18 Nov 2024 13:18:29 +0100
Subject: [PATCH 42/42] linters: compare inactive violations through the
 existing equals method

---
 .../org.mpsqa.lint.generic.behavior.mps       | 168 +-----------------
 1 file changed, 8 insertions(+), 160 deletions(-)

diff --git a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
index 965c596a..10cf27f6 100644
--- a/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
+++ b/code/languages/org.mpsqa.lint/languages/org.mpsqa.lint.generic/models/org.mpsqa.lint.generic.behavior.mps
@@ -175,7 +175,6 @@
       <concept id="1107461130800" name="jetbrains.mps.baseLanguage.structure.Classifier" flags="ng" index="3pOWGL">
         <child id="5375687026011219971" name="member" index="jymVt" unordered="true" />
       </concept>
-      <concept id="7812454656619025412" name="jetbrains.mps.baseLanguage.structure.LocalMethodCall" flags="nn" index="1rXfSq" />
       <concept id="1107535904670" name="jetbrains.mps.baseLanguage.structure.ClassifierType" flags="in" index="3uibUv">
         <reference id="1107535924139" name="classifier" index="3uigEE" />
       </concept>
@@ -1320,20 +1319,6 @@
             </node>
           </node>
           <node concept="3clFbS" id="1o6a6fGk50P" role="2LFqv$">
-            <node concept="3cpWs8" id="1o6a6fGkjhV" role="3cqZAp">
-              <node concept="3cpWsn" id="1o6a6fGkjhW" role="3cpWs9">
-                <property role="TrG5h" value="crtViolationText" />
-                <node concept="17QB3L" id="1o6a6fGkjfP" role="1tU5fm" />
-                <node concept="2OqwBi" id="1o6a6fGkjhX" role="33vP2m">
-                  <node concept="2GrUjf" id="1o6a6fGkjhY" role="2Oq$k0">
-                    <ref role="2Gs0qQ" node="1o6a6fGk50L" resolve="currentViolation" />
-                  </node>
-                  <node concept="3TrcHB" id="1o6a6fGkjhZ" role="2OqNvi">
-                    <ref role="3TsBF5" to="a1af:6gY6GEDvQYT" resolve="result" />
-                  </node>
-                </node>
-              </node>
-            </node>
             <node concept="3clFbJ" id="1o6a6fGk6A6" role="3cqZAp">
               <node concept="3fqX7Q" id="1o6a6fGk_fH" role="3clFbw">
                 <node concept="2OqwBi" id="1o6a6fGk_fJ" role="3fr31v">
@@ -1343,37 +1328,15 @@
                   <node concept="2HwmR7" id="1o6a6fGk_fL" role="2OqNvi">
                     <node concept="1bVj0M" id="1o6a6fGk_fM" role="23t8la">
                       <node concept="3clFbS" id="1o6a6fGk_fN" role="1bW5cS">
-                        <node concept="3clFbF" id="1o6a6fGk_fO" role="3cqZAp">
-                          <node concept="1Wc70l" id="1o6a6fGk_fP" role="3clFbG">
-                            <node concept="2YIFZM" id="1o6a6fGk_fQ" role="3uHU7w">
-                              <ref role="37wK5l" node="78RogMCIawZ" resolve="sameNode" />
-                              <ref role="1Pybhc" node="78RogMCHKPV" resolve="Node2ID" />
-                              <node concept="2OqwBi" id="1o6a6fGk_fR" role="37wK5m">
-                                <node concept="37vLTw" id="1o6a6fGk_fS" role="2Oq$k0">
-                                  <ref role="3cqZAo" node="6T$NbgWIhYP" resolve="it" />
-                                </node>
-                                <node concept="2sxana" id="3ghOW5HSa6d" role="2OqNvi">
-                                  <ref role="2sxfKC" to="qqy:3ghOW5HS78o" resolve="node" />
-                                </node>
-                              </node>
-                              <node concept="2GrUjf" id="1o6a6fGk_fU" role="37wK5m">
-                                <ref role="2Gs0qQ" node="1o6a6fGk50L" resolve="currentViolation" />
-                              </node>
+                        <node concept="3clFbF" id="10W5gMfCs7q" role="3cqZAp">
+                          <node concept="2OqwBi" id="10W5gMfC$a7" role="3clFbG">
+                            <node concept="2GrUjf" id="10W5gMfCzRz" role="2Oq$k0">
+                              <ref role="2Gs0qQ" node="1o6a6fGk50L" resolve="currentViolation" />
                             </node>
-                            <node concept="2OqwBi" id="1o6a6fGk_fV" role="3uHU7B">
-                              <node concept="2OqwBi" id="1o6a6fGk_fW" role="2Oq$k0">
-                                <node concept="37vLTw" id="1o6a6fGk_fX" role="2Oq$k0">
-                                  <ref role="3cqZAo" node="6T$NbgWIhYP" resolve="it" />
-                                </node>
-                                <node concept="2sxana" id="19GnlsUm96Q" role="2OqNvi">
-                                  <ref role="2sxfKC" to="qqy:19GnlsUkKsI" resolve="message" />
-                                </node>
-                              </node>
-                              <node concept="liA8E" id="1o6a6fGk_fZ" role="2OqNvi">
-                                <ref role="37wK5l" to="wyt6:~String.equals(java.lang.Object)" resolve="equals" />
-                                <node concept="37vLTw" id="1o6a6fGk_g0" role="37wK5m">
-                                  <ref role="3cqZAo" node="1o6a6fGkjhW" resolve="crtViolationText" />
-                                </node>
+                            <node concept="2qgKlT" id="10W5gMfC$wd" role="2OqNvi">
+                              <ref role="37wK5l" node="106MO2l56WG" resolve="equals" />
+                              <node concept="37vLTw" id="10W5gMfC$Ev" role="37wK5m">
+                                <ref role="3cqZAo" node="6T$NbgWIhYP" resolve="it" />
                               </node>
                             </node>
                           </node>
@@ -1615,121 +1578,6 @@
       <node concept="3Tqbb2" id="78RogMCHLg_" role="3clF45" />
       <node concept="3Tm1VV" id="78RogMCHLg9" role="1B3o_S" />
     </node>
-    <node concept="2tJIrI" id="78RogMCHRWX" role="jymVt" />
-    <node concept="2YIFZL" id="78RogMCHS5E" role="jymVt">
-      <property role="TrG5h" value="nodeId" />
-      <node concept="3clFbS" id="78RogMCHS5H" role="3clF47">
-        <node concept="3clFbF" id="78RogMCHTFy" role="3cqZAp">
-          <node concept="2OqwBi" id="78RogMCHUkw" role="3clFbG">
-            <node concept="2OqwBi" id="78RogMCHU3j" role="2Oq$k0">
-              <node concept="2JrnkZ" id="78RogMCHTOz" role="2Oq$k0">
-                <node concept="37vLTw" id="78RogMCHTFw" role="2JrQYb">
-                  <ref role="3cqZAo" node="78RogMCHSem" resolve="n" />
-                </node>
-              </node>
-              <node concept="liA8E" id="78RogMCHUbU" role="2OqNvi">
-                <ref role="37wK5l" to="mhbf:~SNode.getNodeId()" resolve="getNodeId" />
-              </node>
-            </node>
-            <node concept="liA8E" id="78RogMCHUug" role="2OqNvi">
-              <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
-            </node>
-          </node>
-        </node>
-      </node>
-      <node concept="3Tm1VV" id="78RogMCHROh" role="1B3o_S" />
-      <node concept="17QB3L" id="78RogMCHS5p" role="3clF45" />
-      <node concept="37vLTG" id="78RogMCHSem" role="3clF46">
-        <property role="TrG5h" value="n" />
-        <node concept="3Tqbb2" id="78RogMCHSel" role="1tU5fm" />
-      </node>
-    </node>
-    <node concept="2tJIrI" id="78RogMCHSo8" role="jymVt" />
-    <node concept="2YIFZL" id="78RogMCHSf9" role="jymVt">
-      <property role="TrG5h" value="nodeModelId" />
-      <node concept="3clFbS" id="78RogMCHSfa" role="3clF47">
-        <node concept="3clFbF" id="78RogMCHUz$" role="3cqZAp">
-          <node concept="2OqwBi" id="78RogMCHViF" role="3clFbG">
-            <node concept="2OqwBi" id="78RogMCHV2p" role="2Oq$k0">
-              <node concept="2JrnkZ" id="78RogMCHUUA" role="2Oq$k0">
-                <node concept="2OqwBi" id="78RogMCHUE9" role="2JrQYb">
-                  <node concept="37vLTw" id="78RogMCHUzz" role="2Oq$k0">
-                    <ref role="3cqZAo" node="78RogMCHSfd" resolve="n" />
-                  </node>
-                  <node concept="I4A8Y" id="78RogMCHUKc" role="2OqNvi" />
-                </node>
-              </node>
-              <node concept="liA8E" id="78RogMCHVav" role="2OqNvi">
-                <ref role="37wK5l" to="mhbf:~SModel.getModelId()" resolve="getModelId" />
-              </node>
-            </node>
-            <node concept="liA8E" id="78RogMCHVsl" role="2OqNvi">
-              <ref role="37wK5l" to="wyt6:~Object.toString()" resolve="toString" />
-            </node>
-          </node>
-        </node>
-      </node>
-      <node concept="3Tm1VV" id="78RogMCHSfb" role="1B3o_S" />
-      <node concept="17QB3L" id="78RogMCHSfc" role="3clF45" />
-      <node concept="37vLTG" id="78RogMCHSfd" role="3clF46">
-        <property role="TrG5h" value="n" />
-        <node concept="3Tqbb2" id="78RogMCHSfe" role="1tU5fm" />
-      </node>
-    </node>
-    <node concept="2tJIrI" id="78RogMCHKR2" role="jymVt" />
-    <node concept="2YIFZL" id="78RogMCIawZ" role="jymVt">
-      <property role="TrG5h" value="sameNode" />
-      <node concept="3clFbS" id="78RogMCIax2" role="3clF47">
-        <node concept="3clFbF" id="78RogMCIaJE" role="3cqZAp">
-          <node concept="1Wc70l" id="78RogMCIbCB" role="3clFbG">
-            <node concept="17R0WA" id="78RogMCIbS7" role="3uHU7w">
-              <node concept="1rXfSq" id="78RogMCIbYj" role="3uHU7w">
-                <ref role="37wK5l" node="78RogMCHSf9" resolve="nodeModelId" />
-                <node concept="37vLTw" id="78RogMCIc2A" role="37wK5m">
-                  <ref role="3cqZAo" node="78RogMCIaGE" resolve="n" />
-                </node>
-              </node>
-              <node concept="2OqwBi" id="78RogMCIbGh" role="3uHU7B">
-                <node concept="37vLTw" id="78RogMCIbF3" role="2Oq$k0">
-                  <ref role="3cqZAo" node="78RogMCIaHd" resolve="re" />
-                </node>
-                <node concept="3TrcHB" id="78RogMCIbMt" role="2OqNvi">
-                  <ref role="3TsBF5" to="a1af:78RogMCGEW7" resolve="resultNodeModelId" />
-                </node>
-              </node>
-            </node>
-            <node concept="17R0WA" id="78RogMCIbry" role="3uHU7B">
-              <node concept="2OqwBi" id="78RogMCIaSz" role="3uHU7B">
-                <node concept="37vLTw" id="78RogMCIaJD" role="2Oq$k0">
-                  <ref role="3cqZAo" node="78RogMCIaHd" resolve="re" />
-                </node>
-                <node concept="3TrcHB" id="78RogMCIb0C" role="2OqNvi">
-                  <ref role="3TsBF5" to="a1af:78RogMCGEUf" resolve="resultNodeId" />
-                </node>
-              </node>
-              <node concept="1rXfSq" id="78RogMCIb$C" role="3uHU7w">
-                <ref role="37wK5l" node="78RogMCHS5E" resolve="nodeId" />
-                <node concept="37vLTw" id="78RogMCIbB4" role="37wK5m">
-                  <ref role="3cqZAo" node="78RogMCIaGE" resolve="n" />
-                </node>
-              </node>
-            </node>
-          </node>
-        </node>
-      </node>
-      <node concept="3Tm1VV" id="78RogMCIana" role="1B3o_S" />
-      <node concept="10P_77" id="78RogMCIawE" role="3clF45" />
-      <node concept="37vLTG" id="78RogMCIaGE" role="3clF46">
-        <property role="TrG5h" value="n" />
-        <node concept="3Tqbb2" id="78RogMCIaGD" role="1tU5fm" />
-      </node>
-      <node concept="37vLTG" id="78RogMCIaHd" role="3clF46">
-        <property role="TrG5h" value="re" />
-        <node concept="3Tqbb2" id="78RogMCIaHS" role="1tU5fm">
-          <ref role="ehGHo" to="a1af:6gY6GEDvQYS" resolve="ResultEntry" />
-        </node>
-      </node>
-    </node>
     <node concept="3Tm1VV" id="78RogMCHOcW" role="1B3o_S" />
   </node>
   <node concept="13h7C7" id="pFzydTBO9l">