Support @AcceptedAnnotations for different kinds of resolvers

This commit is contained in:
Pavel V. Talanov
2017-07-13 20:48:10 +03:00
parent 1c412b4068
commit 1b42095dc1
8 changed files with 169 additions and 21 deletions
@@ -0,0 +1,29 @@
package custom.scriptDefinition
import java.io.File
import kotlin.script.dependencies.*
import kotlin.script.templates.ScriptTemplateDefinition
class TestDependenciesResolver : DependenciesResolver {
@kotlin.script.templates.AcceptedAnnotations(Anno::class)
override fun resolve(
scriptContents: ScriptContents,
environment: Environment
): DependenciesResolver.ResolveResult {
val annoFQN = Anno::class.qualifiedName!!
assert(scriptContents.annotations.single().annotationClass.qualifiedName == annoFQN)
return ScriptDependencies(
classpath = listOf(environment["template-classes"] as File),
imports = listOf(annoFQN)
).asSuccess()
}
}
@Target(AnnotationTarget.FILE)
annotation class Anno
@Target(AnnotationTarget.FILE)
annotation class Anno2
@ScriptTemplateDefinition(TestDependenciesResolver::class, scriptFilePattern = "script.kts")
class Template