forked from google/ksp
-
Notifications
You must be signed in to change notification settings - Fork 2
/
TestProcessor.kt
27 lines (24 loc) · 1 KB
/
TestProcessor.kt
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
import com.google.devtools.ksp.processing.*
import com.google.devtools.ksp.symbol.KSAnnotated
import com.google.devtools.ksp.symbol.KSFunctionDeclaration
class TestProcessor(
private val codeGenerator: CodeGenerator,
private val options: Map<String, String>,
private val logger: KSPLogger
) : SymbolProcessor {
override fun process(resolver: Resolver): List<KSAnnotated> {
resolver
.getSymbolsWithAnnotation("com.example.ann.MyAnn")
.filterIsInstance<KSFunctionDeclaration>()
.forEach { func ->
val arg = func.annotations.first().arguments.first().value.toString()
if (!arg.startsWith("REPLACE"))
throw IllegalStateException(arg)
}
return emptyList()
}
}
class TestProcessorProvider : SymbolProcessorProvider {
override fun create(environment: SymbolProcessorEnvironment): SymbolProcessor =
TestProcessor(environment.codeGenerator, environment.options, environment.logger)
}