[Workspace Model] [IDEA-336941] Update code generator to generate entity read events

GitOrigin-RevId: a2c8ef77c9951f506128b58c03c182cbfb860981
This commit is contained in:
Alex Plate
2023-12-12 13:59:57 +00:00
committed by intellij-monorepo-bot
parent ae21a78e59
commit 3f9b8f963c
3 changed files with 46 additions and 10 deletions
@@ -1,3 +1,3 @@
codegenImplMinorVersion = 6
codegenImplMinorVersion = 7
codegenImplMajorVersion = 3
codegenApiVersion = 2
@@ -27,7 +27,10 @@ ${getLinksOfConnectionIds(this)}
${allFields.filter { it.name !in listOf("entitySource", "symbolicId") }.lines(" ") { implWsEntityFieldCode }.trimEnd()}
override val entitySource: EntitySource
get() = dataSource.entitySource
get() {
readField("entitySource")
return dataSource.entitySource
}
override fun connectionIdList(): List<${ConnectionId}> {
return connections
@@ -24,11 +24,26 @@ private val ObjProperty<*, *>.implWsBlockingCode: String
internal fun ObjProperty<*, *>.implWsBlockCode(fieldType: ValueType<*>, name: String, optionalSuffix: String = ""): String {
return when (fieldType) {
ValueType.Int -> "override val $name: ${fieldType.javaType} get() = dataSource.$name"
ValueType.Boolean -> "override val $name: ${fieldType.javaType} get() = dataSource.$name"
ValueType.Int -> """
override val $name: ${fieldType.javaType}
get() {
readField("$name")
return dataSource.$name
}
""".trimIndent()
ValueType.Boolean -> """
override val $name: ${fieldType.javaType}
get() {
readField("$name")
return dataSource.$name
}
""".trimIndent()
ValueType.String -> """
override val $name: ${fieldType.javaType}${optionalSuffix}
get() = dataSource.$name
get() {
readField("$name")
return dataSource.$name
}
""".trimIndent()
is ValueType.ObjRef -> {
@@ -61,7 +76,10 @@ internal fun ObjProperty<*, *>.implWsBlockCode(fieldType: ValueType<*>, name: St
else {
"""
override val $name: ${fieldType.javaType}$optionalSuffix
get() = dataSource.$name
get() {
readField("$name")
return dataSource.$name
}
""".trimIndent()
}
@@ -73,22 +91,37 @@ internal fun ObjProperty<*, *>.implWsBlockCode(fieldType: ValueType<*>, name: St
else {
"""
override val $javaName: ${fieldType.javaType}$optionalSuffix
get() = dataSource.$name
get() {
readField("$name")
return dataSource.$name
}
""".trimIndent()
}
}
is ValueType.Map<*, *> -> """
override val $name: ${fieldType.javaType}$optionalSuffix
get() = dataSource.$name
get() {
readField("$name")
return dataSource.$name
}
""".trimIndent()
is ValueType.Optional<*> -> when (fieldType.type) {
ValueType.Int, ValueType.Boolean -> "override val $name: ${fieldType.javaType} get() = dataSource.$name"
ValueType.Int, ValueType.Boolean -> """
override val $name: ${fieldType.javaType}
get() {
readField("$name")
return dataSource.$name
}
""".trimIndent()
else -> implWsBlockCode(fieldType.type, name, "?")
}
is ValueType.JvmClass -> """
override val $name: ${fieldType.kotlinClassName.toQualifiedName()}$optionalSuffix
get() = dataSource.$name
get() {
readField("$name")
return dataSource.$name
}
""".trimIndent()
else -> error("Unsupported field type: $this")