Skip to content

Commit e3c855d

Browse files
committed
refactor(mps-multiplatform-lib): id generation of mps-compatible models and modules without mps
1 parent 4121cc7 commit e3c855d

File tree

7 files changed

+49
-38
lines changed

7 files changed

+49
-38
lines changed

commitlint.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ module.exports = {
2323
"mps-model-adapters",
2424
"mps-model-server",
2525
"mps-sync-plugin",
26+
"mps-multiplatform-lib",
2627
"openapi",
2728
"streams",
2829
"ts-model-api",

mps-model-adapters/src/main/kotlin/org/modelix/model/mpsadapters/MPSArea.kt

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@ import org.modelix.model.api.NodeReference
1818
import org.modelix.model.area.IArea
1919
import org.modelix.model.area.IAreaListener
2020
import org.modelix.model.area.IAreaReference
21+
import org.modelix.mps.multiplatform.model.MPSModelImportReference
2122
import org.modelix.mps.multiplatform.model.MPSModelReference
23+
import org.modelix.mps.multiplatform.model.MPSModuleDependencyReference
2224
import org.modelix.mps.multiplatform.model.MPSModuleReference
2325
import org.modelix.mps.multiplatform.model.MPSNodeReference
2426

@@ -203,7 +205,7 @@ data class MPSArea(val repository: SRepository) : IArea, IAreaReference {
203205
private fun resolveMPSModelImportReference(ref: INodeReference): MPSModelImportAsNode? {
204206
val serialized = ref.serialize()
205207
val importedModelRef = if (ref is MPSModelImportReference) {
206-
ref.importedModel
208+
ref.importedModel.toMPS()
207209
} else {
208210
val serializedModelRef = serialized
209211
.substringAfter("${MPSModelImportReference.PREFIX}:")
@@ -212,7 +214,7 @@ data class MPSArea(val repository: SRepository) : IArea, IAreaReference {
212214
}
213215

214216
val importingModelRef = if (ref is MPSModelImportReference) {
215-
ref.importingModel
217+
ref.importingModel.toMPS()
216218
} else {
217219
val serializedModelRef = serialized.substringAfter(MPSModelImportReference.SEPARATOR)
218220
MPSReferenceParser.parseSModelReference(serializedModelRef)
@@ -227,7 +229,7 @@ data class MPSArea(val repository: SRepository) : IArea, IAreaReference {
227229
private fun resolveMPSModuleDependencyReference(ref: INodeReference): MPSModuleDependencyAsNode? {
228230
val serialized = ref.serialize()
229231
val usedModuleId = if (ref is MPSModuleDependencyReference) {
230-
ref.usedModuleId
232+
PersistenceFacade.getInstance().createModuleId(ref.usedModuleId)
231233
} else {
232234
val serializedModuleId = serialized
233235
.substringAfter("${MPSModuleDependencyReference.PREFIX}:")
@@ -236,7 +238,7 @@ data class MPSArea(val repository: SRepository) : IArea, IAreaReference {
236238
}
237239

238240
val userModuleReference = if (ref is MPSModuleDependencyReference) {
239-
ref.userModuleReference
241+
ref.userModuleReference.toMPS()
240242
} else {
241243
val serializedModuleRef = serialized.substringAfter(MPSModuleDependencyReference.SEPARATOR)
242244
MPSReferenceParser.parseSModuleReference(serializedModuleRef)

mps-model-adapters/src/main/kotlin/org/modelix/model/mpsadapters/MPSModelImportAsNode.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import org.modelix.model.api.INodeReference
99
import org.modelix.model.api.IPropertyReference
1010
import org.modelix.model.api.IReferenceLinkReference
1111
import org.modelix.model.api.IWritableNode
12+
import org.modelix.mps.multiplatform.model.MPSModelImportReference
1213

1314
data class MPSModelImportAsNode(val importedModel: SModelReference, val importingModel: SModel) : MPSGenericNodeAdapter<MPSModelImportAsNode>() {
1415

@@ -60,8 +61,8 @@ data class MPSModelImportAsNode(val importedModel: SModelReference, val importin
6061

6162
override fun getNodeReference(): INodeReference {
6263
return MPSModelImportReference(
63-
importedModel = importedModel,
64-
importingModel = importingModel.reference,
64+
importedModel = importedModel.toModelix(),
65+
importingModel = importingModel.reference.toModelix(),
6566
)
6667
}
6768

mps-model-adapters/src/main/kotlin/org/modelix/model/mpsadapters/MPSModuleDependencyAsNode.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import org.modelix.model.api.INodeReference
1313
import org.modelix.model.api.IPropertyReference
1414
import org.modelix.model.api.IReferenceLinkReference
1515
import org.modelix.model.api.IWritableNode
16+
import org.modelix.mps.multiplatform.model.MPSModuleDependencyReference
1617

1718
data class MPSModuleDependencyAsNode(
1819
val owner: SModule,
@@ -167,8 +168,8 @@ data class MPSModuleDependencyAsNode(
167168

168169
override fun getNodeReference(): INodeReference {
169170
return MPSModuleDependencyReference(
170-
usedModuleId = moduleReference.moduleId,
171-
userModuleReference = owner.moduleReference,
171+
usedModuleId = moduleReference.moduleId.toString(),
172+
userModuleReference = owner.moduleReference.toModelix(),
172173
)
173174
}
174175

mps-model-adapters/src/main/kotlin/org/modelix/model/mpsadapters/MPSReferences.kt

Lines changed: 0 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -85,36 +85,6 @@ data class MPSJavaModuleFacetReference(val moduleReference: SModuleReference) :
8585
}
8686
}
8787

88-
data class MPSModelImportReference(
89-
val importedModel: SModelReference,
90-
val importingModel: SModelReference,
91-
) : INodeReference() {
92-
93-
companion object {
94-
internal const val PREFIX = "mps-model-import"
95-
internal const val SEPARATOR = "#IN#"
96-
}
97-
98-
override fun serialize(): String {
99-
return "$PREFIX:${importedModel.withoutNames()}$SEPARATOR${importingModel.withoutNames()}"
100-
}
101-
}
102-
103-
data class MPSModuleDependencyReference(
104-
val usedModuleId: SModuleId,
105-
val userModuleReference: SModuleReference,
106-
) : INodeReference() {
107-
108-
companion object {
109-
internal const val PREFIX = "mps-module-dep"
110-
internal const val SEPARATOR = "#IN#"
111-
}
112-
113-
override fun serialize(): String {
114-
return "$PREFIX:$usedModuleId$SEPARATOR${userModuleReference.withoutNames()}"
115-
}
116-
}
117-
11888
data class MPSProjectReference(val projectName: String) : INodeReference() {
11989

12090
companion object {
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.modelix.mps.multiplatform.model
2+
3+
import org.modelix.model.api.INodeReference
4+
5+
data class MPSModelImportReference(
6+
val importedModel: MPSModelReference,
7+
val importingModel: MPSModelReference,
8+
) : INodeReference() {
9+
10+
companion object {
11+
const val PREFIX = "mps-model-import"
12+
const val SEPARATOR = "#IN#"
13+
}
14+
15+
override fun serialize(): String {
16+
return "$PREFIX:${importedModel.toMPSString()}$SEPARATOR${importingModel.toMPSString()}"
17+
}
18+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package org.modelix.mps.multiplatform.model
2+
3+
import org.modelix.model.api.INodeReference
4+
5+
data class MPSModuleDependencyReference(
6+
val usedModuleId: String,
7+
val userModuleReference: MPSModuleReference,
8+
) : INodeReference() {
9+
10+
companion object {
11+
const val PREFIX = "mps-module-dep"
12+
const val SEPARATOR = "#IN#"
13+
}
14+
15+
override fun serialize(): String {
16+
return "$PREFIX:$usedModuleId$SEPARATOR${userModuleReference.toMPSString()}"
17+
}
18+
}

0 commit comments

Comments
 (0)