File tree Expand file tree Collapse file tree 2 files changed +22
-0
lines changed
model-api/src/commonMain/kotlin/org/modelix/model/api Expand file tree Collapse file tree 2 files changed +22
-0
lines changed Original file line number Diff line number Diff line change 13
13
*/
14
14
package org.modelix.model.api
15
15
16
+ import kotlinx.serialization.KSerializer
17
+ import kotlinx.serialization.Serializable
18
+ import kotlinx.serialization.descriptors.PrimitiveKind
19
+ import kotlinx.serialization.descriptors.PrimitiveSerialDescriptor
20
+ import kotlinx.serialization.descriptors.SerialDescriptor
21
+ import kotlinx.serialization.encoding.Decoder
22
+ import kotlinx.serialization.encoding.Encoder
16
23
import org.modelix.model.area.IArea
17
24
25
+ @Serializable(with = ConceptReferenceKSerializer ::class )
18
26
data class ConceptReference (val uid : String ) : IConceptReference {
19
27
@Deprecated(" use ILanguageRepository.resolveConcept" )
20
28
override fun resolve (area : IArea ? ): IConcept ? {
@@ -34,3 +42,16 @@ data class ConceptReference(val uid: String) : IConceptReference {
34
42
return uid
35
43
}
36
44
}
45
+
46
+ class ConceptReferenceKSerializer : KSerializer <ConceptReference > {
47
+ override fun deserialize (decoder : Decoder ): ConceptReference {
48
+ val serialized = decoder.decodeString()
49
+ return ConceptReference (serialized)
50
+ }
51
+
52
+ override val descriptor: SerialDescriptor = PrimitiveSerialDescriptor (" modelix.ConceptReference" , PrimitiveKind .STRING )
53
+
54
+ override fun serialize (encoder : Encoder , value : ConceptReference ) {
55
+ encoder.encodeString(value.uid)
56
+ }
57
+ }
Original file line number Diff line number Diff line change @@ -18,6 +18,7 @@ import org.modelix.model.area.IArea
18
18
/* *
19
19
* Reference to an [IConcept].
20
20
*/
21
+ @Deprecated(" use ConceptReference" )
21
22
interface IConceptReference {
22
23
companion object {
23
24
private var deserializers: Map <Any , ((String ) - > IConceptReference ? )> = LinkedHashMap ()
You can’t perform that action at this time.
0 commit comments