File tree Expand file tree Collapse file tree 2 files changed +42
-3
lines changed
mps-model-adapters-plugin/src/test/kotlin/org/modelix/model/mpsadapters
mps-model-adapters/src/main/kotlin/org/modelix/model/mpsadapters Expand file tree Collapse file tree 2 files changed +42
-3
lines changed Original file line number Diff line number Diff line change
1
+ /*
2
+ * Copyright (c) 2024.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ package org.modelix.model.mpsadapters
18
+
19
+ import org.modelix.model.api.INode
20
+ import org.modelix.model.api.NodeReference
21
+
22
+ class MPSModuleAsNodeTest : MpsAdaptersTestBase (" SimpleProject" ) {
23
+
24
+ fun `test resolve language dependency from reference` () {
25
+ val repositoryNode: INode = MPSRepositoryAsNode (mpsProject.repository)
26
+ val languageDependencyNodeReference = NodeReference (
27
+ " mps-lang:f3061a53-9226-4cc5-a443-f952ceaf5816#IN#mps-module:6517ba0d-f632-49c5-a166-401587c2c3ca(Solution1)" ,
28
+ )
29
+
30
+ val resolvedLanguageDependency = readAction {
31
+ repositoryNode.getArea().resolveNode(languageDependencyNodeReference)
32
+ }
33
+
34
+ assertNotNull(resolvedLanguageDependency)
35
+ assertEquals(languageDependencyNodeReference.serialize(), resolvedLanguageDependency!! .reference.serialize())
36
+ }
37
+ }
Original file line number Diff line number Diff line change @@ -183,9 +183,11 @@ data class MPSModuleAsNode(val module: SModule) : IDefaultNodeAdapter {
183
183
if (module !is AbstractModule ) {
184
184
return null
185
185
}
186
- module.moduleDescriptor?.dependencyVersions?.forEach { entry ->
187
- if (entry.key.moduleId == dependencyId) {
188
- return MPSSingleLanguageDependencyAsNode (entry.key, entry.value, moduleImporter = module)
186
+ val languageDependencies = module.moduleDescriptor?.languageVersions
187
+ languageDependencies?.forEach { entry ->
188
+ val sourceModelReference = entry.key.sourceModuleReference
189
+ if (sourceModelReference.moduleId == dependencyId) {
190
+ return MPSSingleLanguageDependencyAsNode (sourceModelReference, entry.value, moduleImporter = module)
189
191
}
190
192
}
191
193
return null
You can’t perform that action at this time.
0 commit comments