Skip to content

Commit 4f3f02e

Browse files
slissonmhuster23
authored andcommitted
fix(mps-model-adapters): some write access implementations ignored incorrect usage
1 parent a9dcab0 commit 4f3f02e

File tree

3 files changed

+13
-5
lines changed

3 files changed

+13
-5
lines changed

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

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,9 @@ data class MPSModelAsNode(val model: SModel) : IDeprecatedNodeDefaults {
111111
}
112112

113113
override fun setPropertyValue(property: IProperty, value: String?) {
114-
// TODO("Not yet implemented")
114+
if (getPropertyValue(property) != value) {
115+
throw UnsupportedOperationException("Property $property of $concept is read-only")
116+
}
115117
}
116118

117119
override fun getPropertyLinks(): List<IProperty> {

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,6 @@ object MPSNodeReferenceSerializer : INodeReferenceSerializerEx {
5555
}
5656

5757
override fun deserialize(serialized: String): INodeReference {
58-
TODO("Not yet implemented")
58+
return MPSNodeReference(SNodePointer.deserialize(serialized))
5959
}
6060
}

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

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -85,11 +85,15 @@ data class MPSRepositoryAsNode(val repository: SRepository) : IDeprecatedNodeDef
8585
}
8686

8787
override fun setReferenceTarget(link: IReferenceLink, target: INode?) {
88-
return
88+
if (target != null) {
89+
throw IllegalArgumentException("$concept doesn't contain a reference link $link")
90+
}
8991
}
9092

9193
override fun setReferenceTarget(role: IReferenceLink, target: INodeReference?) {
92-
return
94+
if (target != null) {
95+
throw IllegalArgumentException("$concept doesn't contain a reference link $role")
96+
}
9397
}
9498

9599
override fun getReferenceTargetRef(role: IReferenceLink): INodeReference? {
@@ -101,7 +105,9 @@ data class MPSRepositoryAsNode(val repository: SRepository) : IDeprecatedNodeDef
101105
}
102106

103107
override fun setPropertyValue(property: IProperty, value: String?) {
104-
TODO("Not yet implemented")
108+
if (value != null) {
109+
throw IllegalArgumentException("$concept doesn't contain a property $property")
110+
}
105111
}
106112

107113
override fun getPropertyLinks(): List<IProperty> {

0 commit comments

Comments
 (0)