in generator/src/main/kotlin/space/jetbrains/api/generator/GenerateResources.kt [403:426]
fun paramWithDefault(paramField: HA_Field): Pair<ParameterSpec, String?> {
val type = when {
WEBHOOK_PAYLOAD_FIELDS_TAG in paramField.type.tags -> {
LambdaTypeName.get(receiver = webhookEventPartialType, returnType = UNIT)
.copy(nullable = paramField.type.nullable, option = paramField.requiresOption)
}
PERMISSION_SCOPE_TAG in paramField.type.tags -> {
permissionScopeType.copy(nullable = paramField.type.nullable, option = paramField.requiresOption)
}
else -> paramField.nullableTypeIfRequired().kotlinPoet(model, paramField.requiresOption)
}
val parameter = ParameterSpec.builder(
paramField.name,
type
)
when {
paramField.requiresOption -> parameter.defaultValue("%T", optionNoneType)
paramField.requiresAddedNullability -> parameter.defaultValue("null")
paramField.defaultValue != null -> parameter.defaultValue(buildCodeBlock {
default(paramField.type, model, paramField.defaultValue)
})
}
return parameter.build() to paramDescription(paramField)
}