Extract interface from implementation in case of Environment and ModuleRegistry

This commit is contained in:
2020-03-10 20:34:26 +01:00
parent 3fd48b7963
commit 82e86ebc6a
4 changed files with 46 additions and 29 deletions

View File

@@ -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("<root>")
private val loadedModules = mutableListOf<String>()
override fun loadModule(path: String) {
DefaultModuleRegistry.requestModulesForPath(path).forEach {
rootModule.addSubmodule(it)
loadedModules.add(path)
}
}
override fun printModules(printContent: Boolean) {
rootModule.pretty(printContent)
}
}