Skip to content

Commit 39e7a97

Browse files
committed
check if includedLanguage/includedConcept exists
1 parent 91bddb3 commit 39e7a97

File tree

1 file changed

+11
-7
lines changed

1 file changed

+11
-7
lines changed

metamodel-gradle/src/main/kotlin/org/modelix/metamodel/gradle/GenerateMetaModelSources.kt

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,23 +2,18 @@ package org.modelix.metamodel.gradle
22

33
import org.gradle.api.DefaultTask
44
import org.gradle.api.file.DirectoryProperty
5-
import org.gradle.api.file.RegularFileProperty
65
import org.gradle.api.model.ObjectFactory
76
import org.gradle.api.provider.ListProperty
87
import org.gradle.api.provider.Property
98
import org.gradle.api.tasks.Input
109
import org.gradle.api.tasks.InputDirectory
11-
import org.gradle.api.tasks.InputFile
12-
import org.gradle.api.tasks.InputFiles
1310
import org.gradle.api.tasks.Optional
1411
import org.gradle.api.tasks.OutputDirectory
1512
import org.gradle.api.tasks.TaskAction
1613
import org.modelix.metamodel.generator.LanguageData
1714
import org.modelix.metamodel.generator.LanguageSet
1815
import org.modelix.metamodel.generator.MetaModelGenerator
1916
import org.modelix.metamodel.generator.TypescriptMMGenerator
20-
import java.io.File
21-
import java.util.*
2217
import javax.inject.Inject
2318

2419
abstract class GenerateMetaModelSources @Inject constructor(of: ObjectFactory) : DefaultTask() {
@@ -49,13 +44,14 @@ abstract class GenerateMetaModelSources @Inject constructor(of: ObjectFactory) :
4944
val previousLanguageCount = languages.getLanguages().size
5045

5146
val includedNamespaces = this.includedNamespaces.get().map { it.trimEnd('.') }
52-
val includedLanguages = this.includedLanguages.get() + includedNamespaces
47+
val includedLanguages = this.includedLanguages.get()
48+
val includedLanguagesAndNS = this.includedLanguages.get() + includedNamespaces
5349
val namespacePrefixes = includedNamespaces.map { it + "." }
5450
val includedConcepts = this.includedConcepts.get()
5551

5652
languages = languages.filter {
5753
languages.getLanguages().filter { lang ->
58-
includedLanguages.contains(lang.name)
54+
includedLanguagesAndNS.contains(lang.name)
5955
|| namespacePrefixes.any { lang.name.startsWith(it) }
6056
}.forEach { lang ->
6157
lang.getConceptsInLanguage().forEach { concept ->
@@ -64,6 +60,14 @@ abstract class GenerateMetaModelSources @Inject constructor(of: ObjectFactory) :
6460
}
6561
includedConcepts.forEach { includeConcept(it) }
6662
}
63+
64+
val missingLanguages = includedLanguages - languages.getLanguages().map { it.name }.toSet()
65+
val missingConcepts = includedConcepts - languages.getLanguages().flatMap { it.getConceptsInLanguage() }.map { it.fqName }.toSet()
66+
67+
if (missingLanguages.isNotEmpty() || missingConcepts.isNotEmpty()) {
68+
throw RuntimeException("The following languages or concepts were not found: " + (missingLanguages + missingConcepts))
69+
}
70+
6771
println("${languages.getLanguages().size} of $previousLanguageCount languages included")
6872

6973
val kotlinOutputDir = this.kotlinOutputDir.orNull?.asFile

0 commit comments

Comments
 (0)