Skip to content

Commit e59d45c

Browse files
committed
fix(mps-sync-plugin): don't synchronize stub models
1 parent 6481e23 commit e59d45c

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

bulk-model-sync-mps/src/main/kotlin/org/modelix/mps/model/sync/bulk/MPSProjectSyncMask.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import jetbrains.mps.project.MPSProject
44
import org.modelix.model.api.BuiltinLanguages
55
import org.modelix.model.api.IChildLinkReference
66
import org.modelix.model.api.IReadableNode
7+
import org.modelix.model.api.getName
78
import org.modelix.model.mpsadapters.MPSModuleAsNode
89
import org.modelix.model.mpsadapters.MPSProjectAsNode
910
import org.modelix.model.sync.bulk.IModelMask
@@ -39,7 +40,18 @@ class MPSProjectSyncMask(val projects: List<MPSProject>, val isMPSSide: Boolean)
3940
BuiltinLanguages.MPSRepositoryConcepts.Project.getReference() -> when {
4041
else -> children
4142
}
42-
else -> children
43+
else -> when {
44+
role.matches(BuiltinLanguages.MPSRepositoryConcepts.Module.models.toReference()) -> {
45+
children.filterNot { isStubModel(it.getName()) }
46+
}
47+
else -> children
48+
}
4349
}
4450
}
51+
52+
private fun isStubModel(name: String?): Boolean {
53+
if (name == null) return false
54+
val stereotype = name.substringAfter('@')
55+
return stereotype.contains("stub")
56+
}
4557
}

model-api/src/commonMain/kotlin/org/modelix/model/api/BuiltinLanguages.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,3 +532,5 @@ object BuiltinLanguages {
532532
ModelixRuntimelang,
533533
)
534534
}
535+
536+
fun IReadableNode.getName() = getPropertyValue(BuiltinLanguages.jetbrains_mps_lang_core.INamedConcept.name.toReference())

0 commit comments

Comments
 (0)