@@ -5,43 +5,44 @@ import org.gradle.api.file.DirectoryProperty
5
5
import org.gradle.api.model.ObjectFactory
6
6
import org.gradle.api.provider.ListProperty
7
7
import org.gradle.api.provider.Property
8
- import org.gradle.api.tasks.Input
9
- import org.gradle.api.tasks.InputDirectory
10
- import org.gradle.api.tasks.Optional
11
- import org.gradle.api.tasks.OutputDirectory
12
- import org.gradle.api.tasks.TaskAction
8
+ import org.gradle.api.tasks.*
9
+ import org.modelix.metamodel.generator.*
13
10
import org.modelix.model.data.LanguageData
14
- import org.modelix.metamodel.generator.LanguageSet
15
- import org.modelix.metamodel.generator.MetaModelGenerator
16
- import org.modelix.metamodel.generator.NameConfig
17
- import org.modelix.metamodel.generator.TypescriptMMGenerator
18
- import org.modelix.metamodel.generator.process
19
11
import javax.inject.Inject
20
12
13
+ @CacheableTask
21
14
abstract class GenerateMetaModelSources @Inject constructor(of : ObjectFactory ) : DefaultTask() {
22
15
@get:InputDirectory
16
+ @PathSensitive(PathSensitivity .RELATIVE )
23
17
val exportedLanguagesDir: DirectoryProperty = of.directoryProperty()
18
+
24
19
@get:OutputDirectory
25
20
@Optional
26
21
val kotlinOutputDir: DirectoryProperty = of.directoryProperty()
22
+
27
23
@get:OutputDirectory
28
24
@Optional
29
25
val typescriptOutputDir: DirectoryProperty = of.directoryProperty()
26
+
30
27
@get:Input
31
28
val includedNamespaces: ListProperty <String > = of.listProperty(String ::class .java)
29
+
32
30
@get:Input
33
31
val includedLanguages: ListProperty <String > = of.listProperty(String ::class .java)
32
+
34
33
@get:Input
35
34
val includedConcepts: ListProperty <String > = of.listProperty(String ::class .java)
35
+
36
36
@get:Input
37
37
@Optional
38
38
val registrationHelperName: Property <String > = of.property(String ::class .java)
39
+
39
40
@get: Input
40
41
val nameConfig: Property <NameConfig > = of.property(NameConfig ::class .java)
41
42
42
43
@TaskAction
43
44
fun generate () {
44
- var languages: LanguageSet = LanguageSet (exportedLanguagesDir.get().asFile.walk()
45
+ var languages = LanguageSet (exportedLanguagesDir.get().asFile.walk()
45
46
.filter { it.extension.lowercase() == " json" }
46
47
.map { LanguageData .fromJson(it.readText()) }
47
48
.toList())
0 commit comments