override fun visitListType()

in graphql-dgs-codegen-core/src/main/kotlin/com/netflix/graphql/dgs/codegen/generators/java/TypeUtils.kt [81:116]


                override fun visitListType(
                    node: ListType,
                    context: TraverserContext<Node<Node<*>>>,
                ): TraversalControl {
                    val typeName = context.getCurrentAccumulate<JavaTypeName>()
                    val boxed = boxType(typeName)

                    var canUseWildcardType = false
                    if (useWildcardType) {
                        if (typeName is ClassName) {
                            if (document.definitions
                                    .filterIsInstance<ObjectTypeDefinition>()
                                    .any { e -> "I${e.name}" == typeName.simpleName() } ||
                                (
                                    config.generateInterfaces &&
                                        document.definitions.filterIsInstance<InterfaceTypeDefinition>().any { e ->
                                            "${e.name}" ==
                                                typeName.simpleName()
                                        }
                                )
                            ) {
                                canUseWildcardType = true
                            }
                        }
                    }

                    val parameterizedTypeName =
                        if (canUseWildcardType) {
                            val wildcardTypeName: WildcardTypeName = WildcardTypeName.subtypeOf(boxed)
                            ParameterizedTypeName.get(ClassName.get(List::class.java), wildcardTypeName)
                        } else {
                            ParameterizedTypeName.get(ClassName.get(List::class.java), boxed)
                        }
                    context.setAccumulate(parameterizedTypeName)
                    return TraversalControl.CONTINUE
                }