@@ -5,43 +5,38 @@ import com.squareup.kotlinpoet.FunSpec
5
5
import com.squareup.kotlinpoet.ParameterizedTypeName.Companion.parameterizedBy
6
6
import com.squareup.kotlinpoet.PropertySpec
7
7
import com.squareup.kotlinpoet.TypeSpec
8
- import org.gradle.api.DefaultTask
9
- import org.gradle.api.tasks.Input
10
- import org.gradle.api.tasks.OutputDirectory
11
- import org.gradle.api.tasks.TaskAction
8
+ import org.gradle.workers.WorkAction
9
+ import org.gradle.workers.WorkParameters
12
10
import org.jetbrains.kotlin.com.intellij.psi.tree.TokenSet
13
11
import org.jetbrains.kotlin.lexer.KtKeywordToken
14
12
import org.jetbrains.kotlin.lexer.KtTokens
15
13
import java.io.File
16
14
17
- open class GeneratorTask : DefaultTask () {
15
+ abstract class KeywordsGeneratorAction : WorkAction < KeywordsGeneratorAction . Parameters > {
18
16
19
- @OutputDirectory
20
- lateinit var srcDir: File
17
+ interface Parameters : WorkParameters {
18
+ var srcDir: File
19
+ }
21
20
22
21
private val taskPackageName = " org.jetbrains.dataframe.keywords"
23
22
24
- @Input
25
- override fun getGroup () = " codegen"
26
-
27
- @TaskAction
28
- fun generate () {
29
- srcDir.deleteRecursively()
23
+ override fun execute () {
24
+ parameters.srcDir.deleteRecursively()
30
25
generateKeywordEnums()
31
26
}
32
27
33
28
private fun generateKeywordEnums () {
34
29
listOf (
35
30
" HardKeywords" to KtTokens .KEYWORDS ,
36
31
" SoftKeywords" to KtTokens .SOFT_KEYWORDS ,
37
- " ModifierKeywords" to KtTokens .MODIFIER_KEYWORDS
32
+ " ModifierKeywords" to KtTokens .MODIFIER_KEYWORDS ,
38
33
).forEach { (name, set) ->
39
34
generateKeywordsEnum(name, set)
40
35
}
41
36
}
42
37
43
38
private fun generateKeywordsEnum (name : String , tokenSet : TokenSet ) {
44
- buildKwEnum(name, getKeywords(tokenSet)).writeTo(srcDir)
39
+ buildKwEnum(name, getKeywords(tokenSet)).writeTo(parameters. srcDir)
45
40
}
46
41
47
42
private fun getKeywords (tokenSet : TokenSet ): List <EnumEntry > {
@@ -87,8 +82,4 @@ open class GeneratorTask : DefaultTask() {
87
82
88
83
return fileBuilder.build()
89
84
}
90
-
91
- companion object {
92
- const val NAME = " generateKeywordsSrc"
93
- }
94
85
}
0 commit comments