From 077853412f44938ae7f55ec7234704a924ef8129 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benedek=20Horv=C3=A1th?= Date: Wed, 20 Mar 2024 10:07:06 +0100 Subject: [PATCH] fix(mps-sync-plugin-lib): replaced mappedMpsNodeID with getOriginalReference (MODELIX-822) --- .../mps/sync/mps/factories/SNodeFactory.kt | 4 +--- .../org/modelix/mps/sync/util/INodeExt.kt | 19 +------------------ 2 files changed, 2 insertions(+), 21 deletions(-) diff --git a/mps-sync-plugin-lib/src/main/kotlin/org/modelix/mps/sync/mps/factories/SNodeFactory.kt b/mps-sync-plugin-lib/src/main/kotlin/org/modelix/mps/sync/mps/factories/SNodeFactory.kt index 2a292687..7315707e 100644 --- a/mps-sync-plugin-lib/src/main/kotlin/org/modelix/mps/sync/mps/factories/SNodeFactory.kt +++ b/mps-sync-plugin-lib/src/main/kotlin/org/modelix/mps/sync/mps/factories/SNodeFactory.kt @@ -39,7 +39,6 @@ import org.modelix.mps.sync.tasks.SyncDirection import org.modelix.mps.sync.tasks.SyncLock import org.modelix.mps.sync.tasks.SyncQueue import org.modelix.mps.sync.transformation.cache.MpsToModelixMap -import org.modelix.mps.sync.util.mappedMpsNodeID import org.modelix.mps.sync.util.nodeIdAsLong import org.modelix.mps.sync.util.waitForCompletionOfEachTask @@ -81,7 +80,6 @@ class SNodeFactory( // 1. create node val mpsNodeId = getMpsNodeId(iNode) val sNode = jetbrains.mps.smodel.SNode(concept, mpsNodeId) - val nodeId = iNode.nodeIdAsLong() // 2. add to parent val parent = iNode.parent @@ -115,7 +113,7 @@ class SNodeFactory( } private fun getMpsNodeId(iNode: INode): SNodeId { - val mpsNodeIdAsString = iNode.mappedMpsNodeID() + val mpsNodeIdAsString = iNode.getOriginalReference() val mpsId = mpsNodeIdAsString?.let { PersistenceFacade.getInstance().createNodeId(it) } return if (mpsId != null) { mpsId diff --git a/mps-sync-plugin-lib/src/main/kotlin/org/modelix/mps/sync/util/INodeExt.kt b/mps-sync-plugin-lib/src/main/kotlin/org/modelix/mps/sync/util/INodeExt.kt index 03fefb6b..e4e52e4b 100644 --- a/mps-sync-plugin-lib/src/main/kotlin/org/modelix/mps/sync/util/INodeExt.kt +++ b/mps-sync-plugin-lib/src/main/kotlin/org/modelix/mps/sync/util/INodeExt.kt @@ -21,23 +21,8 @@ import org.modelix.kotlin.utils.UnstableModelixFeature import org.modelix.model.api.BuiltinLanguages import org.modelix.model.api.INode import org.modelix.model.api.PNodeAdapter -import org.modelix.model.api.PropertyFromName -import org.modelix.model.data.NodeData import org.modelix.model.mpsadapters.MPSNode -@UnstableModelixFeature(reason = "The new modelix MPS plugin is under construction", intendedFinalization = "2024.1") -fun INode.mappedMpsNodeID(): String? { - return try { - val nodeIdProperty = PropertyFromName(NodeData.ID_PROPERTY_KEY) - this.getPropertyValue(nodeIdProperty) - } catch (e: RuntimeException) { - throw RuntimeException( - "Failed to retrieve the ${NodeData.ID_PROPERTY_KEY} property in mappedMpsNodeID. The INode is $this , concept: ${this.concept}", - e, - ) - } -} - @UnstableModelixFeature(reason = "The new modelix MPS plugin is under construction", intendedFinalization = "2024.1") fun INode.nodeIdAsLong(): Long = when (this) { @@ -79,9 +64,7 @@ fun INode.isSingleLanguageDependency(): Boolean { fun INode.isModelImport(): Boolean { val concept = this.concept ?: return false val isModelReference = concept.isSubConceptOf(BuiltinLanguages.MPSRepositoryConcepts.ModelReference) - // we have to use roleInParent, because getContainmentLink() is sometimes null, when roleInParent is not - val isModelImportRole = - this.roleInParent == BuiltinLanguages.MPSRepositoryConcepts.Model.modelImports.getSimpleName() + val isModelImportRole = BuiltinLanguages.MPSRepositoryConcepts.Model.modelImports == this.getContainmentLink() return isModelReference && isModelImportRole }