Skip to content

Commit dd90c71

Browse files
authored
Make the KotlinDataFetcherFactoryProvider nullable (ExpediaGroup#623)
We made the DataFetcher nullable in this change ExpediaGroup#613, so this lines up to match the same types in graphql-java
1 parent 2ff8b33 commit dd90c71

File tree

5 files changed

+13
-13
lines changed

5 files changed

+13
-13
lines changed

examples/spring/src/main/kotlin/com/expediagroup/graphql/examples/execution/CustomDataFetcherFactoryProvider.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,14 +31,14 @@ class CustomDataFetcherFactoryProvider(
3131
private val objectMapper: ObjectMapper
3232
) : SimpleKotlinDataFetcherFactoryProvider(objectMapper) {
3333

34-
override fun functionDataFetcherFactory(target: Any?, kFunction: KFunction<*>): DataFetcherFactory<Any> = DataFetcherFactory<Any> {
34+
override fun functionDataFetcherFactory(target: Any?, kFunction: KFunction<*>) = DataFetcherFactory {
3535
CustomFunctionDataFetcher(
3636
target = target,
3737
fn = kFunction,
3838
objectMapper = objectMapper)
3939
}
4040

41-
override fun propertyDataFetcherFactory(kClass: KClass<*>, kProperty: KProperty<*>): DataFetcherFactory<Any> =
41+
override fun propertyDataFetcherFactory(kClass: KClass<*>, kProperty: KProperty<*>): DataFetcherFactory<Any?> =
4242
if (kProperty.isLateinit) {
4343
springDataFetcherFactory
4444
} else {

examples/spring/src/main/kotlin/com/expediagroup/graphql/examples/execution/SpringDataFetcherFactory.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,18 +25,18 @@ import org.springframework.beans.factory.BeanFactoryAware
2525
import org.springframework.stereotype.Component
2626

2727
@Component
28-
class SpringDataFetcherFactory : DataFetcherFactory<Any>, BeanFactoryAware {
28+
class SpringDataFetcherFactory : DataFetcherFactory<Any?>, BeanFactoryAware {
2929
private lateinit var beanFactory: BeanFactory
3030

3131
override fun setBeanFactory(beanFactory: BeanFactory) {
3232
this.beanFactory = beanFactory
3333
}
3434

3535
@Suppress("UNCHECKED_CAST")
36-
override fun get(environment: DataFetcherFactoryEnvironment?): DataFetcher<Any> {
36+
override fun get(environment: DataFetcherFactoryEnvironment?): DataFetcher<Any?> {
3737

3838
// Strip out possible `Input` and `!` suffixes added to by the SchemaGenerator
3939
val targetedTypeName = environment?.fieldDefinition?.type?.deepName?.removeSuffix("!")?.removeSuffix("Input")
40-
return beanFactory.getBean("${targetedTypeName}DataFetcher") as DataFetcher<Any>
40+
return beanFactory.getBean("${targetedTypeName}DataFetcher") as DataFetcher<Any?>
4141
}
4242
}

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -37,15 +37,15 @@ interface KotlinDataFetcherFactoryProvider {
3737
* retrieved during data fetcher execution from [graphql.schema.DataFetchingEnvironment]
3838
* @param kFunction Kotlin function being invoked
3939
*/
40-
fun functionDataFetcherFactory(target: Any?, kFunction: KFunction<*>): DataFetcherFactory<Any>
40+
fun functionDataFetcherFactory(target: Any?, kFunction: KFunction<*>): DataFetcherFactory<Any?>
4141

4242
/**
4343
* Retrieve an instance of [DataFetcherFactory] that will be used to resolve target property.
4444
*
4545
* @param kClass parent class that contains this property
4646
* @param kProperty Kotlin property that should be resolved
4747
*/
48-
fun propertyDataFetcherFactory(kClass: KClass<*>, kProperty: KProperty<*>): DataFetcherFactory<Any>
48+
fun propertyDataFetcherFactory(kClass: KClass<*>, kProperty: KProperty<*>): DataFetcherFactory<Any?>
4949
}
5050

5151
/**
@@ -56,14 +56,14 @@ open class SimpleKotlinDataFetcherFactoryProvider(
5656
private val objectMapper: ObjectMapper = jacksonObjectMapper()
5757
) : KotlinDataFetcherFactoryProvider {
5858

59-
override fun functionDataFetcherFactory(target: Any?, kFunction: KFunction<*>): DataFetcherFactory<Any> = DataFetcherFactory<Any> {
59+
override fun functionDataFetcherFactory(target: Any?, kFunction: KFunction<*>) = DataFetcherFactory {
6060
FunctionDataFetcher(
6161
target = target,
6262
fn = kFunction,
6363
objectMapper = objectMapper)
6464
}
6565

66-
override fun propertyDataFetcherFactory(kClass: KClass<*>, kProperty: KProperty<*>): DataFetcherFactory<Any> = DataFetcherFactory<Any> {
66+
override fun propertyDataFetcherFactory(kClass: KClass<*>, kProperty: KProperty<*>) = DataFetcherFactory<Any?> {
6767
PropertyDataFetcher(kProperty.name)
6868
}
6969
}

graphql-kotlin-schema-generator/src/test/kotlin/com/expediagroup/graphql/execution/CustomDataFetcherTests.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,15 +67,15 @@ data class AnimalDetails(val specialId: Int)
6767

6868
class CustomDataFetcherFactoryProvider : SimpleKotlinDataFetcherFactoryProvider() {
6969

70-
override fun propertyDataFetcherFactory(kClass: KClass<*>, kProperty: KProperty<*>): DataFetcherFactory<Any> =
70+
override fun propertyDataFetcherFactory(kClass: KClass<*>, kProperty: KProperty<*>): DataFetcherFactory<Any?> =
7171
if (kProperty.isLateinit) {
7272
DataFetcherFactories.useDataFetcher(AnimalDetailsDataFetcher())
7373
} else {
7474
super.propertyDataFetcherFactory(kClass, kProperty)
7575
}
7676
}
7777

78-
class AnimalDetailsDataFetcher : DataFetcher<Any> {
78+
class AnimalDetailsDataFetcher : DataFetcher<Any?> {
7979

8080
override fun get(environment: DataFetchingEnvironment?): AnimalDetails {
8181
val animal = environment?.getSource<Animal>()

graphql-kotlin-schema-generator/src/test/kotlin/com/expediagroup/graphql/generator/types/GeneratePropertyTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,8 @@ internal class GeneratePropertyTest : TypeTestHelper() {
185185
every { getSchemaDirectiveWiring(any()) } returns object : KotlinSchemaDirectiveWiring {}
186186
}
187187
}
188-
val mockDataFetcher: DataFetcher<Any> = mockk()
189-
val mockFactory: DataFetcherFactory<Any> = mockk()
188+
val mockDataFetcher: DataFetcher<Any?> = mockk()
189+
val mockFactory: DataFetcherFactory<Any?> = mockk()
190190
val mockDataFetcherFactoryProvider: KotlinDataFetcherFactoryProvider = mockk()
191191

192192
every { mockDataFetcherFactoryProvider.propertyDataFetcherFactory(any(), any()) } returns mockFactory

0 commit comments

Comments
 (0)