diff --git a/api/src/main/kotlin/io/smnp/environment/Environment.kt b/api/src/main/kotlin/io/smnp/environment/Environment.kt index 88477fc..29b32b6 100644 --- a/api/src/main/kotlin/io/smnp/environment/Environment.kt +++ b/api/src/main/kotlin/io/smnp/environment/Environment.kt @@ -3,18 +3,7 @@ package io.smnp.environment import io.smnp.ext.ModuleRegistry import io.smnp.type.module.Module -class Environment { - private val rootModule = Module("") - private val loadedModules = mutableListOf() - - fun loadModule(path: String) { - ModuleRegistry.requestModulesForPath(path).forEach { - rootModule.addSubmodule(it) - loadedModules.add(path) - } - } - - fun printModules(printContent: Boolean) { - rootModule.pretty(printContent) - } +interface Environment { + fun loadModule(path: String) + fun printModules(printContent: Boolean) } \ No newline at end of file diff --git a/api/src/main/kotlin/io/smnp/ext/ModuleRegistry.kt b/api/src/main/kotlin/io/smnp/ext/ModuleRegistry.kt index 5f49004..2a3b653 100644 --- a/api/src/main/kotlin/io/smnp/ext/ModuleRegistry.kt +++ b/api/src/main/kotlin/io/smnp/ext/ModuleRegistry.kt @@ -3,19 +3,6 @@ package io.smnp.ext import io.smnp.type.module.Module import org.pf4j.DefaultPluginManager -object ModuleRegistry { - private val modules = mutableListOf>() - init { - val pluginManager = DefaultPluginManager() - pluginManager.loadPlugins() - pluginManager.startPlugins() - - pluginManager.getExtensions(ModuleDefinition::class.java).forEach { - modules.add(Pair(it.modulePath(), Module.create(it.modulePath(), it.functions(), it.methods()))) - } - } - - fun requestModulesForPath(path: String): List { - return modules.filter { it.first == path }.map { it.second } - } +interface ModuleRegistry { + fun requestModulesForPath(path: String): List } \ No newline at end of file diff --git a/app/src/main/kotlin/io/smnp/environment/DefaultEnvironment.kt b/app/src/main/kotlin/io/smnp/environment/DefaultEnvironment.kt new file mode 100644 index 0000000..1cde872 --- /dev/null +++ b/app/src/main/kotlin/io/smnp/environment/DefaultEnvironment.kt @@ -0,0 +1,20 @@ +package io.smnp.environment + +import io.smnp.ext.DefaultModuleRegistry +import io.smnp.type.module.Module + +class DefaultEnvironment : Environment { + private val rootModule = Module("") + private val loadedModules = mutableListOf() + + override fun loadModule(path: String) { + DefaultModuleRegistry.requestModulesForPath(path).forEach { + rootModule.addSubmodule(it) + loadedModules.add(path) + } + } + + override fun printModules(printContent: Boolean) { + rootModule.pretty(printContent) + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/io/smnp/ext/DefaultModuleRegistry.kt b/app/src/main/kotlin/io/smnp/ext/DefaultModuleRegistry.kt new file mode 100644 index 0000000..7e22f6b --- /dev/null +++ b/app/src/main/kotlin/io/smnp/ext/DefaultModuleRegistry.kt @@ -0,0 +1,21 @@ +package io.smnp.ext + +import io.smnp.type.module.Module +import org.pf4j.DefaultPluginManager + +object DefaultModuleRegistry : ModuleRegistry { + private val modules = mutableListOf>() + init { + val pluginManager = DefaultPluginManager() + pluginManager.loadPlugins() + pluginManager.startPlugins() + + pluginManager.getExtensions(ModuleDefinition::class.java).forEach { + modules.add(Pair(it.modulePath(), Module.create(it.modulePath(), it.functions(), it.methods()))) + } + } + + override fun requestModulesForPath(path: String): List { + return modules.filter { it.first == path }.map { it.second } + } +} \ No newline at end of file