All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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