in graphql-dgs-codegen-core/src/main/kotlin/com/netflix/graphql/dgs/codegen/generators/java/DataTypeGenerator.kt [183:216]
fun generate(
definition: InputObjectTypeDefinition,
extensions: List<InputObjectTypeExtensionDefinition>,
inputTypeDefinitions: List<InputObjectTypeDefinition>,
): CodeGenResult {
if (definition.shouldSkip(config)) {
return CodeGenResult.EMPTY
}
logger.info("Generating input type {}", definition.name)
val name = definition.name
val fieldDefinitions =
definition.inputValueDefinitions
.asSequence()
.map {
val type = typeUtils.findReturnType(it.type)
val defaultValue =
it.defaultValue?.let { defVal ->
generateCode(defVal, type, inputTypeDefinitions)
}
Field(
name = it.name,
type = type,
initialValue = defaultValue,
description = it.description,
directives = it.directives,
trackFieldSet = config.trackInputFieldSet && !type.isPrimitive && it.type !is NonNullType,
)
}.plus(
extensions.asSequence().flatMap { it.inputValueDefinitions }.map { Field(it.name, typeUtils.findReturnType(it.type)) },
).toList()
return generate(name, emptyList(), fieldDefinitions, definition.description, definition.directives)
}