
cc.unitmesh.core.arch.LayeredArchitecture.kt Maven / Gradle / Ivy
package cc.unitmesh.core.arch
/**
*
*/
interface LayeredArchitecture {
val layerDefinitions: LayerDefinitions
}
data class LayerDefinition(
val name: String,
val optional: Boolean = false,
)
class LayerDefinitions {
private val layerDefinitions: MutableMap = LinkedHashMap()
fun add(definition: LayerDefinition) {
layerDefinitions[definition.name] = definition
}
fun containLayer(layerName: String): Boolean {
return layerDefinitions.containsKey(layerName)
}
private fun get(layerNames: Collection): List {
return layerNames.mapNotNull(layerDefinitions::get)
}
operator fun iterator(): Iterator {
return layerDefinitions.values.iterator()
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy