blob: 7bb6d4d44953123ae6580baeac64f1284a12a2b3 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
import com.google.devtools.ksp.processing.*
import com.google.devtools.ksp.symbol.*
import java.io.OutputStream
fun OutputStream.appendText(str: String) {
this.write(str.toByteArray())
}
class TestProcessor(options: Map<String, String>, val codeGenerator: CodeGenerator) : SymbolProcessor {
val file: OutputStream = codeGenerator.createNewFile(Dependencies(false), "", "TestProcessor", "log")
init {
file.appendText("TestProcessor: init($options)\n")
val javaFile = codeGenerator.createNewFile(Dependencies(false), "", "GeneratedFromProvider", "java")
javaFile.appendText("class GeneratedFromProvider {}")
}
var invoked = false
override fun process(resolver: Resolver): List<KSAnnotated> {
if (invoked) {
return emptyList()
}
val fileKt = codeGenerator.createNewFile(Dependencies(false), "", "HelloFromProvider", "java")
fileKt.appendText("public class HelloFromProvider{\n")
fileKt.appendText(" public int foo() { return 5678; }\n")
fileKt.appendText("}")
invoked = true
return emptyList()
}
class Provider : SymbolProcessorProvider {
override fun create(
environment: SymbolProcessorEnvironment
): SymbolProcessor = TestProcessor(environment.options, environment.codeGenerator)
}
}
|