@@ -62,7 +62,8 @@ class TypescriptMMGenerator(val outputDir: Path, val nameConfig: NameConfig = Na
62
62
INodeJS,
63
63
ITypedNode,
64
64
SingleChildAccessor,
65
- TypedNode
65
+ TypedNode,
66
+ LanguageRegistry
66
67
} from "@modelix/ts-model-api";
67
68
68
69
${language.languageDependencies().joinToString(" \n " ) {
@@ -129,9 +130,19 @@ class TypescriptMMGenerator(val outputDir: Path, val nameConfig: NameConfig = Na
129
130
}
130
131
} else defaultPropertyText
131
132
}
132
- is ProcessedReferenceLink -> """
133
-
133
+ is ProcessedReferenceLink -> {
134
+ val typeRef = feature.type.resolved
135
+ val languagePrefix = typeRef.languagePrefix(concept.language)
136
+ val entityType = " $languagePrefix${typeRef.nodeWrapperInterfaceName()} "
137
+ """
138
+ public set ${feature.generatedName} (value: $entityType | undefined) {
139
+ this.node.setReferenceTargetNode("${feature.originalName} ", value.unwrap());
140
+ }
141
+ public get ${feature.generatedName} : $entityType | undefined {
142
+ return LanguageRegistry.INSTANCE.wrapNode(this.node.getReferenceTargetNode("${feature.originalName} "));
143
+ }
134
144
""" .trimIndent()
145
+ }
135
146
is ProcessedChildLink -> {
136
147
val accessorClassName = if (feature.multiple) " ChildListAccessor" else " SingleChildAccessor"
137
148
val typeRef = feature.type.resolved
@@ -167,9 +178,15 @@ class TypescriptMMGenerator(val outputDir: Path, val nameConfig: NameConfig = Na
167
178
}
168
179
} else defaultPropertyText
169
180
}
170
- is ProcessedReferenceLink -> """
171
-
172
- """ .trimIndent()
181
+ is ProcessedReferenceLink -> {
182
+ val typeRef = feature.type.resolved
183
+ val languagePrefix = typeRef.languagePrefix(concept.language)
184
+ val entityType = " $languagePrefix${typeRef.nodeWrapperInterfaceName()} "
185
+ """
186
+ set ${feature.generatedName} (value: $entityType | undefined);
187
+ get ${feature.generatedName} : $entityType | undefined;
188
+ """ .trimIndent()
189
+ }
173
190
is ProcessedChildLink -> {
174
191
val accessorClassName = if (feature.multiple) " ChildListAccessor" else " SingleChildAccessor"
175
192
"""
0 commit comments