feat: use @Nonnull better for Kotlin code

This commit is contained in:
2023-11-03 23:01:10 +08:00
parent 111312463e
commit 3304a1afef

View File

@@ -44,6 +44,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
/** /**
@@ -205,6 +206,7 @@ internal class LibrariesAccessorsGenerator {
else -> "\"$accessors\" accessors" else -> "\"$accessors\" accessors"
}; addJavadoc("Resolve the $actual") }; addJavadoc("Resolve the $actual")
}.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()
@@ -228,6 +230,7 @@ internal class LibrariesAccessorsGenerator {
MethodSpec.methodBuilder("get${alias.uppercamelcase()}") MethodSpec.methodBuilder("get${alias.uppercamelcase()}")
.addJavadoc("Resolve the \"$dependency\" version alias \"$alias\"") .addJavadoc("Resolve the \"$dependency\" version alias \"$alias\"")
.addModifiers(Modifier.PUBLIC, Modifier.FINAL) .addModifiers(Modifier.PUBLIC, Modifier.FINAL)
.addAnnotation(Nonnull::class.java)
.returns(ExternalDependencyDelegate::class.java) .returns(ExternalDependencyDelegate::class.java)
.addStatement("return ${alias.camelcase()}") .addStatement("return ${alias.camelcase()}")
.build() .build()
@@ -432,6 +435,10 @@ internal class LibrariesAccessorsGenerator {
*/ */
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)
@@ -447,6 +454,7 @@ internal class LibrariesAccessorsGenerator {
.addParameter(String::class.java, "version") .addParameter(String::class.java, "version")
.build() .build()
).build().createJavaFile(ExternalDependencyDelegate::class.java.packageName) ).build().createJavaFile(ExternalDependencyDelegate::class.java.packageName)
stubFiles.add(nonnullFile)
stubFiles.add(iExtensionAccessorsFile) stubFiles.add(iExtensionAccessorsFile)
stubFiles.add(externalDependencyDelegateFile) stubFiles.add(externalDependencyDelegateFile)
return stubFiles return stubFiles