fun generate()

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)
    }