Skip to content

Commit 044001c

Browse files
committed
feat: new method forceSave(SModel)
1 parent 40480d5 commit 044001c

File tree

4 files changed

+30
-1
lines changed

4 files changed

+30
-1
lines changed

api/src/main/kotlin/org/modelix/mps/api/IModelixMpsApi.kt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package org.modelix.mps.api
22

33
import jetbrains.mps.openapi.editor.EditorContext
44
import org.jetbrains.mps.openapi.language.SReferenceLink
5+
import org.jetbrains.mps.openapi.model.SModel
56
import org.jetbrains.mps.openapi.model.SNode
67
import org.jetbrains.mps.openapi.model.SNodeReference
78
import org.jetbrains.mps.openapi.module.SModule
@@ -28,4 +29,6 @@ interface IModelixMpsApi {
2829
fun fixVersions(project: Project, module: SModule)
2930

3031
fun setReference(node: SNode, link: SReferenceLink, target: SNodeReference)
32+
33+
fun forceSave(model: SModel)
3134
}

impl203/src/main/kotlin/org/modelix/mps/api/ModelixMpsApiImpl203.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,11 @@ import jetbrains.mps.project.ProjectManager
1111
import jetbrains.mps.smodel.MPSModuleRepository
1212
import jetbrains.mps.smodel.SReference
1313
import org.jetbrains.mps.openapi.language.SReferenceLink
14+
import org.jetbrains.mps.openapi.model.EditableSModel
15+
import org.jetbrains.mps.openapi.model.SModel
1416
import org.jetbrains.mps.openapi.model.SNode
1517
import org.jetbrains.mps.openapi.model.SNodeReference
18+
import org.jetbrains.mps.openapi.model.SaveOptions
1619
import org.jetbrains.mps.openapi.module.SModule
1720
import org.jetbrains.mps.openapi.module.SRepository
1821
import org.jetbrains.mps.openapi.project.Project
@@ -68,4 +71,9 @@ open class ModelixMpsApiImpl203 : IModelixMpsApi {
6871
override fun setReference(node: SNode, link: SReferenceLink, target: SNodeReference) {
6972
SReference.create(link, node, target, null)
7073
}
74+
75+
override fun forceSave(model: SModel) {
76+
if (model !is EditableSModel) return
77+
model.save(SaveOptions.FORCE)
78+
}
7179
}
Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
11
package org.modelix.mps.api
22

3-
open class ModelixMpsApiImpl212 : ModelixMpsApiImpl211()
3+
import org.jetbrains.mps.openapi.model.EditableSModel
4+
import org.jetbrains.mps.openapi.model.SModel
5+
import org.jetbrains.mps.openapi.model.SaveOptions
6+
7+
open class ModelixMpsApiImpl212 : ModelixMpsApiImpl211() {
8+
override fun forceSave(model: SModel) {
9+
if (model !is EditableSModel) return
10+
model.save(SaveOptions.FORCE_SAVE)
11+
}
12+
}

lib/api/lib.api

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,18 @@
11
public final class org/modelix/mps/api/ModelixMpsApi : org/modelix/mps/api/IModelixMpsApi {
22
public static final field INSTANCE Lorg/modelix/mps/api/ModelixMpsApi;
33
public fun fixVersions (Lorg/jetbrains/mps/openapi/project/Project;Lorg/jetbrains/mps/openapi/module/SModule;)V
4+
public fun forceSave (Lorg/jetbrains/mps/openapi/model/SModel;)V
5+
public fun getGlobalRepository ()Lorg/jetbrains/mps/openapi/module/SRepository;
46
public fun getMPSProjects ()Ljava/util/List;
7+
public fun getProjectRepository ()Lorg/jetbrains/mps/openapi/module/SRepository;
8+
public fun getRepository ()Lorg/jetbrains/mps/openapi/module/SRepository;
9+
public fun getRepository (Lcom/intellij/openapi/project/Project;)Lorg/jetbrains/mps/openapi/module/SRepository;
10+
public fun getRepository (Ljava/awt/Component;)Lorg/jetbrains/mps/openapi/module/SRepository;
11+
public fun getRepository (Ljetbrains/mps/openapi/editor/EditorContext;)Lorg/jetbrains/mps/openapi/module/SRepository;
12+
public fun getRepository (Lorg/jetbrains/mps/openapi/project/Project;)Lorg/jetbrains/mps/openapi/module/SRepository;
513
public fun getVirtualFolder (Lorg/jetbrains/mps/openapi/module/SModule;)Ljava/lang/String;
614
public fun getVirtualFolder (Lorg/jetbrains/mps/openapi/project/Project;Lorg/jetbrains/mps/openapi/module/SModule;)Ljava/lang/String;
715
public fun getVirtualFolders (Lorg/jetbrains/mps/openapi/module/SModule;)Ljava/util/List;
16+
public fun setReference (Lorg/jetbrains/mps/openapi/model/SNode;Lorg/jetbrains/mps/openapi/language/SReferenceLink;Lorg/jetbrains/mps/openapi/model/SNodeReference;)V
817
}
918

0 commit comments

Comments
 (0)