Skip to content

Commit f386a4c

Browse files
samuelAndalonSamuel Vazquez
and
Samuel Vazquez
authored
feat(8.x.x): if getter exists do not attempt to compute it again (#2096) (#2097)
### 📝 Description cherry-pick #2096 Co-authored-by: Samuel Vazquez <samvazquez@expediagroup.com>
1 parent dbfc9dc commit f386a4c

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

generator/graphql-kotlin-schema-generator/src/main/kotlin/com/expediagroup/graphql/generator/execution/SingletonPropertyDataFetcher.kt

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -33,14 +33,18 @@ internal object SingletonPropertyDataFetcher : LightDataFetcher<Any?> {
3333
environmentSupplier: Supplier<DataFetchingEnvironment>
3434
): Any? =
3535
sourceObject?.let {
36-
getters["${sourceObject.javaClass.name}.${fieldDefinition.name}"]?.call(sourceObject) ?: run {
37-
sourceObject::class.memberProperties
38-
.find { it.name == fieldDefinition.name }
39-
?.let { kProperty ->
40-
kProperty.getter.call(sourceObject).also {
41-
register(sourceObject::class, kProperty)
36+
val getter = getters["${sourceObject.javaClass.name}.${fieldDefinition.name}"]
37+
when {
38+
getter != null -> getter.call(sourceObject)
39+
else -> {
40+
sourceObject::class.memberProperties
41+
.find { it.name == fieldDefinition.name }
42+
?.let { kProperty ->
43+
kProperty.getter.call(sourceObject).also {
44+
register(sourceObject::class, kProperty)
45+
}
4246
}
43-
}
47+
}
4448
} ?: run {
4549
logger.error("getter method not found: ${sourceObject.javaClass.name}.${fieldDefinition.name}")
4650
}

0 commit comments

Comments
 (0)