diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/ModuleGenerationPorts.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/ModuleGenerationPorts.kt new file mode 100644 index 00000000..31767695 --- /dev/null +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/ModuleGenerationPorts.kt @@ -0,0 +1,43 @@ +package io.github.cdsap.projectgenerator.generator + +import io.github.cdsap.projectgenerator.model.LanguageAttributes +import io.github.cdsap.projectgenerator.model.ProjectGraph +import io.github.cdsap.projectgenerator.model.TypeOfStringResources +import java.util.concurrent.CopyOnWriteArrayList + +interface ModuleClassPlanner { + fun planModuleClasses(node: ProjectGraph): MODULE_DEF +} + +interface ClassGenerator { + fun generate( + moduleDefinition: MODULE_DEF, + projectName: String, + a: MutableMap> + ) + + fun obtainClassesGenerated( + moduleDefinition: MODULE_DEF, + classesDictionary: MutableMap> + ): MutableMap> +} + +interface TestGenerator { + fun generate( + moduleDefinition: MODULE_DEF, + projectName: String, + classesDictionary: MutableMap> + ) +} + +interface BuildFilesGenerator { + fun generateBuildFiles(node: ProjectGraph, lang: LanguageAttributes, generateUnitTests: Boolean) +} + +interface ResourceGeneratorA { + fun generate( + node: ProjectGraph, lang: LanguageAttributes, + typeOfStringResources: TypeOfStringResources, + classesDictionary: MutableMap> + ) +} diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/buildfiles/BuildFilesGeneratorAndroid.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/buildfiles/BuildFilesGeneratorAndroid.kt index 94ce2da5..e42c6e34 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/buildfiles/BuildFilesGeneratorAndroid.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/buildfiles/BuildFilesGeneratorAndroid.kt @@ -1,6 +1,6 @@ package io.github.cdsap.projectgenerator.generator.buildfiles -import io.github.cdsap.projectgenerator.writer.BuildFilesGenerator +import io.github.cdsap.projectgenerator.generator.BuildFilesGenerator import io.github.cdsap.projectgenerator.generator.toml.AndroidToml import io.github.cdsap.projectgenerator.model.LanguageAttributes import io.github.cdsap.projectgenerator.model.ProjectGraph diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/buildfiles/BuildFilesGeneratorJvm.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/buildfiles/BuildFilesGeneratorJvm.kt index ef259324..de0960f3 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/buildfiles/BuildFilesGeneratorJvm.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/buildfiles/BuildFilesGeneratorJvm.kt @@ -1,6 +1,6 @@ package io.github.cdsap.projectgenerator.generator.buildfiles -import io.github.cdsap.projectgenerator.writer.BuildFilesGenerator +import io.github.cdsap.projectgenerator.generator.BuildFilesGenerator import io.github.cdsap.projectgenerator.model.LanguageAttributes import io.github.cdsap.projectgenerator.model.ProjectGraph import io.github.cdsap.projectgenerator.model.TypeProject diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/classes/ClassGeneratorAndroid.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/classes/ClassGeneratorAndroid.kt index 2a599744..c0ce43d5 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/classes/ClassGeneratorAndroid.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/classes/ClassGeneratorAndroid.kt @@ -4,7 +4,7 @@ import io.github.cdsap.projectgenerator.generator.GeneratedModuleLayout import io.github.cdsap.projectgenerator.generator.android.AndroidSourceSetLayout import io.github.cdsap.projectgenerator.model.* import io.github.cdsap.projectgenerator.NameMappings -import io.github.cdsap.projectgenerator.writer.ClassGenerator +import io.github.cdsap.projectgenerator.generator.ClassGenerator import java.io.File import java.util.concurrent.CopyOnWriteArrayList import kotlin.text.appendLine diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/classes/ClassGeneratorAndroidLegacy.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/classes/ClassGeneratorAndroidLegacy.kt index 0b1c894e..714e90e9 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/classes/ClassGeneratorAndroidLegacy.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/classes/ClassGeneratorAndroidLegacy.kt @@ -3,7 +3,7 @@ package io.github.cdsap.projectgenerator.generator.classes import io.github.cdsap.projectgenerator.generator.android.AndroidSourceSetLayout import io.github.cdsap.projectgenerator.model.* import io.github.cdsap.projectgenerator.NameMappings -import io.github.cdsap.projectgenerator.writer.ClassGenerator +import io.github.cdsap.projectgenerator.generator.ClassGenerator import java.io.File import java.util.concurrent.CopyOnWriteArrayList import kotlin.text.appendLine diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/classes/ClassGeneratorJvm.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/classes/ClassGeneratorJvm.kt index 1c3056a8..0f9fb00e 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/classes/ClassGeneratorJvm.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/classes/ClassGeneratorJvm.kt @@ -2,7 +2,7 @@ package io.github.cdsap.projectgenerator.generator.classes import io.github.cdsap.projectgenerator.model.* import io.github.cdsap.projectgenerator.NameMappings -import io.github.cdsap.projectgenerator.writer.ClassGenerator +import io.github.cdsap.projectgenerator.generator.ClassGenerator import java.io.File import java.util.concurrent.CopyOnWriteArrayList import kotlin.text.appendLine diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/planner/ModuleClassPlannerAndroid.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/planner/ModuleClassPlannerAndroid.kt index b2151ce3..c0f2224b 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/planner/ModuleClassPlannerAndroid.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/planner/ModuleClassPlannerAndroid.kt @@ -2,7 +2,7 @@ package io.github.cdsap.projectgenerator.generator.planner import io.github.cdsap.projectgenerator.model.* import io.github.cdsap.projectgenerator.NameMappings -import io.github.cdsap.projectgenerator.writer.ModuleClassPlanner +import io.github.cdsap.projectgenerator.generator.ModuleClassPlanner /** * Plans what classes each module should have and their dependencies diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/planner/ModuleClassPlannerAndroidLegacy.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/planner/ModuleClassPlannerAndroidLegacy.kt index 164635ef..a6865221 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/planner/ModuleClassPlannerAndroidLegacy.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/planner/ModuleClassPlannerAndroidLegacy.kt @@ -2,7 +2,7 @@ package io.github.cdsap.projectgenerator.generator.planner import io.github.cdsap.projectgenerator.model.* import io.github.cdsap.projectgenerator.NameMappings -import io.github.cdsap.projectgenerator.writer.ModuleClassPlanner +import io.github.cdsap.projectgenerator.generator.ModuleClassPlanner /** * Plans what classes each module should have and their dependencies diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/planner/ModuleClassPlannerJvm.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/planner/ModuleClassPlannerJvm.kt index ff1b5e64..529d2662 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/planner/ModuleClassPlannerJvm.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/planner/ModuleClassPlannerJvm.kt @@ -1,6 +1,6 @@ package io.github.cdsap.projectgenerator.generator.planner -import io.github.cdsap.projectgenerator.writer.ModuleClassPlanner +import io.github.cdsap.projectgenerator.generator.ModuleClassPlanner import io.github.cdsap.projectgenerator.model.* import io.github.cdsap.projectgenerator.NameMappings diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/resources/ResourceGenerator.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/resources/ResourceGenerator.kt index d4b5c0d0..a4e42633 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/resources/ResourceGenerator.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/resources/ResourceGenerator.kt @@ -7,7 +7,7 @@ import io.github.cdsap.projectgenerator.generator.android.ClassTheme import io.github.cdsap.projectgenerator.generator.android.FragmentLayout import io.github.cdsap.projectgenerator.generator.android.Manifest import io.github.cdsap.projectgenerator.generator.android.ValuesStrings -import io.github.cdsap.projectgenerator.writer.ResourceGeneratorA +import io.github.cdsap.projectgenerator.generator.ResourceGeneratorA import io.github.cdsap.projectgenerator.NameMappings import io.github.cdsap.projectgenerator.generator.classes.GenerateDictionaryAndroid import io.github.cdsap.projectgenerator.model.DependencyInjection diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/test/TestGeneratorAndroid.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/test/TestGeneratorAndroid.kt index dc7056b3..51f24a07 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/test/TestGeneratorAndroid.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/test/TestGeneratorAndroid.kt @@ -2,7 +2,7 @@ package io.github.cdsap.projectgenerator.generator.test import io.github.cdsap.projectgenerator.generator.GeneratedModuleLayout import io.github.cdsap.projectgenerator.generator.classes.GenerateDictionaryAndroid -import io.github.cdsap.projectgenerator.writer.TestGenerator +import io.github.cdsap.projectgenerator.generator.TestGenerator import io.github.cdsap.projectgenerator.model.ClassDefinitionAndroid import io.github.cdsap.projectgenerator.model.ClassDependencyAndroid import io.github.cdsap.projectgenerator.model.ClassTypeAndroid diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/test/TestGeneratorAndroidLegacy.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/test/TestGeneratorAndroidLegacy.kt index 2ee6ef09..5b1042a1 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/test/TestGeneratorAndroidLegacy.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/test/TestGeneratorAndroidLegacy.kt @@ -2,7 +2,7 @@ package io.github.cdsap.projectgenerator.generator.test import io.github.cdsap.projectgenerator.generator.android.AndroidSourceSetLayout import io.github.cdsap.projectgenerator.generator.classes.GenerateDictionaryAndroid -import io.github.cdsap.projectgenerator.writer.TestGenerator +import io.github.cdsap.projectgenerator.generator.TestGenerator import io.github.cdsap.projectgenerator.model.ClassDefinitionAndroid import io.github.cdsap.projectgenerator.model.ClassDependencyAndroid import io.github.cdsap.projectgenerator.model.ClassTypeAndroid diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/test/TestGeneratorJvm.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/test/TestGeneratorJvm.kt index 75773cd5..b7c47ec4 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/test/TestGeneratorJvm.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/generator/test/TestGeneratorJvm.kt @@ -1,6 +1,6 @@ package io.github.cdsap.projectgenerator.generator.test -import io.github.cdsap.projectgenerator.writer.TestGenerator +import io.github.cdsap.projectgenerator.generator.TestGenerator import io.github.cdsap.projectgenerator.generator.classes.GenerateDictionaryJvm import io.github.cdsap.projectgenerator.model.ClassDefinitionJvm import io.github.cdsap.projectgenerator.model.ClassTypeJvm diff --git a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/writer/ModulesWriter.kt b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/writer/ModulesWriter.kt index 7e3f26ba..425fcf0e 100644 --- a/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/writer/ModulesWriter.kt +++ b/project-generator/src/main/kotlin/io/github/cdsap/projectgenerator/writer/ModulesWriter.kt @@ -1,6 +1,11 @@ package io.github.cdsap.projectgenerator.writer +import io.github.cdsap.projectgenerator.generator.BuildFilesGenerator +import io.github.cdsap.projectgenerator.generator.ClassGenerator import io.github.cdsap.projectgenerator.generator.GeneratedModuleLayout +import io.github.cdsap.projectgenerator.generator.ModuleClassPlanner +import io.github.cdsap.projectgenerator.generator.ResourceGeneratorA +import io.github.cdsap.projectgenerator.generator.TestGenerator import io.github.cdsap.projectgenerator.model.LanguageAttributes import io.github.cdsap.projectgenerator.model.ProjectGraph import io.github.cdsap.projectgenerator.model.TypeOfStringResources @@ -76,40 +81,3 @@ abstract class ModulesWrite( } } } - -interface ModuleClassPlanner { - fun planModuleClasses(node: ProjectGraph): MODULE_DEF -} - -interface ClassGenerator { - fun generate( - moduleDefinition: MODULE_DEF, - projectName: String, - a: MutableMap> - ) - - fun obtainClassesGenerated( - moduleDefinition: MODULE_DEF, - classesDictionary: MutableMap> - ): MutableMap> -} - -interface TestGenerator { - fun generate( - moduleDefinition: MODULE_DEF, - projectName: String, - classesDictionary: MutableMap> - ) -} - -interface BuildFilesGenerator { - fun generateBuildFiles(node: ProjectGraph, lang: LanguageAttributes, generateUnitTests: Boolean) -} - -interface ResourceGeneratorA { - fun generate( - node: ProjectGraph, lang: LanguageAttributes, - typeOfStringResources: TypeOfStringResources, - classesDictionary: MutableMap> - ) -} diff --git a/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/generator/ModuleGenerationPortsTest.kt b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/generator/ModuleGenerationPortsTest.kt new file mode 100644 index 00000000..7313839a --- /dev/null +++ b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/generator/ModuleGenerationPortsTest.kt @@ -0,0 +1,23 @@ +package io.github.cdsap.projectgenerator.generator + +import org.junit.jupiter.api.Assertions.assertEquals +import org.junit.jupiter.api.Test + +class ModuleGenerationPortsTest { + + @Test + fun `module generation ports live in the generator package`() { + val expectedPackage = "io.github.cdsap.projectgenerator.generator" + val ports = listOf( + ModuleClassPlanner::class, + ClassGenerator::class, + TestGenerator::class, + BuildFilesGenerator::class, + ResourceGeneratorA::class + ) + + ports.forEach { port -> + assertEquals(expectedPackage, port.java.packageName, "${port.simpleName} package") + } + } +} diff --git a/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/writer/ModulesWriterTest.kt b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/writer/ModulesWriterTest.kt index 09d057c5..c3daea4d 100644 --- a/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/writer/ModulesWriterTest.kt +++ b/project-generator/src/test/kotlin/io/github/cdsap/projectgenerator/writer/ModulesWriterTest.kt @@ -1,6 +1,10 @@ package io.github.cdsap.projectgenerator.writer import io.github.cdsap.projectgenerator.NameMappings +import io.github.cdsap.projectgenerator.generator.BuildFilesGenerator +import io.github.cdsap.projectgenerator.generator.ClassGenerator +import io.github.cdsap.projectgenerator.generator.ModuleClassPlanner +import io.github.cdsap.projectgenerator.generator.TestGenerator import io.github.cdsap.projectgenerator.model.LanguageAttributes import io.github.cdsap.projectgenerator.model.ProjectGraph import io.github.cdsap.projectgenerator.model.TypeProject