aboutsummaryrefslogtreecommitdiff
path: root/integration-tests/src/test/resources/sealed-subclasses/test-processor/src/main/kotlin/TestProcessor.kt
blob: 934d43df772db330a6f93aa8d54788fa4ed497ed (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
import com.google.devtools.ksp.processing.*
import com.google.devtools.ksp.symbol.*

class TestProcessor(
    val codeGenerator: CodeGenerator,
    val logger: KSPLogger
) : SymbolProcessor {
    override fun process(resolver: Resolver): List<KSAnnotated> {
        resolver.getNewFiles().forEach { f ->
            logger.warn("Processing ${f.fileName}")
            f.declarations.forEach {
                if (it is KSClassDeclaration) {
                    val subs = it.getSealedSubclasses().map { it.simpleName.asString() }.toList()
                    logger.warn("${it.simpleName.asString()} : $subs")
                }
            }
        }
        return emptyList()
    }
}

class TestProcessorProvider : SymbolProcessorProvider {
    override fun create(
        environment: SymbolProcessorEnvironment
    ): SymbolProcessor {
        return TestProcessor(environment.codeGenerator, environment.logger)
    }
}