feat: use @Nonnull better for Kotlin code

This commit is contained in:
2023-11-03 23:10:53 +08:00
parent 67c79a591c
commit d2aed2120e

View File

@@ -40,6 +40,7 @@ import com.squareup.javapoet.MethodSpec
import com.squareup.javapoet.TypeSpec import com.squareup.javapoet.TypeSpec
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.* import java.util.*
import javax.annotation.Nonnull
import javax.lang.model.element.Modifier import javax.lang.model.element.Modifier
import kotlin.properties.Delegates import kotlin.properties.Delegates
@@ -180,6 +181,7 @@ internal class PropertiesAccessorsGenerator {
MethodSpec.methodBuilder("get${methodName.capitalize()}") MethodSpec.methodBuilder("get${methodName.capitalize()}")
.addJavadoc("Resolve the \"$accessorsName\" accessors") .addJavadoc("Resolve the \"$accessorsName\" accessors")
.addModifiers(Modifier.PUBLIC, Modifier.FINAL) .addModifiers(Modifier.PUBLIC, Modifier.FINAL)
.addAnnotation(Nonnull::class.java)
.returns(className.capitalized().asClassType()) .returns(className.capitalized().asClassType())
.addStatement("return ${className.uncapitalized()}") .addStatement("return ${className.uncapitalized()}")
.build() .build()
@@ -198,6 +200,7 @@ internal class PropertiesAccessorsGenerator {
val typedValue = value.parseTypedValue(configs.isEnableTypeAutoConversion) val typedValue = value.parseTypedValue(configs.isEnableTypeAutoConversion)
addJavadoc("Resolve the \"$accessorsName\" value ${typedValue.second}") addJavadoc("Resolve the \"$accessorsName\" value ${typedValue.second}")
addModifiers(Modifier.PUBLIC, Modifier.FINAL) addModifiers(Modifier.PUBLIC, Modifier.FINAL)
.addAnnotation(Nonnull::class.java)
.returns(typedValue.first.java) .returns(typedValue.first.java)
.addStatement("return ${typedValue.second}") .addStatement("return ${typedValue.second}")
}.build() }.build()
@@ -380,10 +383,15 @@ internal class PropertiesAccessorsGenerator {
*/ */
internal val compileStubFiles get(): List<JavaFile> { internal val compileStubFiles get(): List<JavaFile> {
val stubFiles = mutableListOf<JavaFile>() val stubFiles = mutableListOf<JavaFile>()
val nonnullFile =
TypeSpec.annotationBuilder(Nonnull::class.java.simpleName)
.addModifiers(Modifier.PUBLIC)
.build().createJavaFile(Nonnull::class.java.packageName)
val iExtensionAccessorsFile = val iExtensionAccessorsFile =
TypeSpec.interfaceBuilder(IExtensionAccessors::class.java.simpleName) TypeSpec.interfaceBuilder(IExtensionAccessors::class.java.simpleName)
.addModifiers(Modifier.PUBLIC) .addModifiers(Modifier.PUBLIC)
.build().createJavaFile(IExtensionAccessors::class.java.packageName) .build().createJavaFile(IExtensionAccessors::class.java.packageName)
stubFiles.add(nonnullFile)
stubFiles.add(iExtensionAccessorsFile) stubFiles.add(iExtensionAccessorsFile)
return stubFiles return stubFiles
} }