Skip to content

Commit 3262bc3

Browse files
committed
Clean up
1 parent a59af42 commit 3262bc3

File tree

2 files changed

+12
-13
lines changed

2 files changed

+12
-13
lines changed

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
<groupId>com.graphql-java-kickstart</groupId>
66
<artifactId>graphql-java-tools</artifactId>
7-
<version>6.2.1-SNAPSHOT</version>
7+
<version>6.2.1-SNAPSHOT-unused-type</version>
88
<packaging>jar</packaging>
99

1010
<name>GraphQL Java Tools</name>

src/main/kotlin/graphql/kickstart/tools/resolver/MethodFieldResolver.kt

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ internal class MethodFieldResolver(
8080
return@add Optional.empty<Any>()
8181
}
8282

83-
if (isValueMustBeConvert(value, definition, parameterType, environment)) {
83+
if (value != null && shouldValueBeConverted(value, definition, parameterType, environment)) {
8484
return@add mapper.convertValue(value, object : TypeReference<Any>() {
8585
override fun getType() = parameterType
8686
})
@@ -106,26 +106,25 @@ internal class MethodFieldResolver(
106106
}
107107
}
108108

109-
private fun isValueMustBeConvert(value: Any?, definition: InputValueDefinition, parameterType: JavaType, environment: DataFetchingEnvironment): Boolean {
110-
return value != null
111-
&& (!parameterType.unwrap().isAssignableFrom(value.javaClass)
112-
|| !isConcreteScalarType(environment, definition.type, parameterType))
109+
private fun shouldValueBeConverted(value: Any, definition: InputValueDefinition, parameterType: JavaType, environment: DataFetchingEnvironment): Boolean {
110+
return !parameterType.unwrap().isAssignableFrom(value.javaClass) || !isConcreteScalarType(environment, definition.type, parameterType)
113111
}
114112

115113
/**
116-
* A concrete scalar type is a scalar type where values are always coerce to the same Java type.
117-
* The ID scalar type is not concrete because values can be coerce to many Java types (eg. String, Long, UUID).
118-
* All values of a non concrete scalar type must be convert to the method field type.
114+
* A concrete scalar type is a scalar type where values always coerce to the same Java type. The ID scalar type is not concrete
115+
* because values can be coerced to multiple different Java types (eg. String, Long, UUID). All values of a non-concrete scalar
116+
* type must be converted to the target method parameter type.
119117
*/
120-
private fun isConcreteScalarType(environment: DataFetchingEnvironment, type: Type<*>, genericParameterType: JavaType): Boolean =
121-
when (type) {
118+
private fun isConcreteScalarType(environment: DataFetchingEnvironment, type: Type<*>, genericParameterType: JavaType): Boolean {
119+
return when (type) {
122120
is ListType -> List::class.java.isAssignableFrom(this.genericType.getRawClass(genericParameterType))
123-
&& isConcreteScalarType(environment, type.type, this.genericType.unwrapGenericType(genericParameterType))
121+
&& isConcreteScalarType(environment, type.type, this.genericType.unwrapGenericType(genericParameterType))
124122
is TypeName -> environment.graphQLSchema?.getType(type.name)?.let { isScalar(it) && type.name != "ID" }
125-
?: false
123+
?: false
126124
is NonNullType -> isConcreteScalarType(environment, type.type, genericParameterType)
127125
else -> false
128126
}
127+
}
129128

130129
override fun scanForMatches(): List<TypeClassMatcher.PotentialMatch> {
131130
val unwrappedGenericType = genericType.unwrapGenericType(try {

0 commit comments

Comments
 (0)