You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

31 lines
1.1 KiB
Kotlin

4 years ago
package me.eater.hefbrug.definition.impl
import me.eater.hefbrug.collector.impl.PackageCollector
import me.eater.hefbrug.definition.AbstractDefinition
import me.eater.hefbrug.definition.DefinitionFactory
import me.eater.hefbrug.dsl.context.impl.PackageContext
import me.eater.hefbrug.enforcer.impl.PackageEnforcer
import me.eater.hefbrug.executor.ExecutionContext
import me.eater.hefbrug.state.impl.PackageState
class PackageDefinition(id: String) :
AbstractDefinition<PackageState, PackageContext>(factory.key(id), PackageState(id)) {
override fun getContext(): PackageContext = PackageContext(this)
class Factory : DefinitionFactory<PackageState, PackageContext, PackageDefinition>("package", ::PackageDefinition) {
override fun createCollector(context: ExecutionContext): PackageCollector =
PackageCollector(context)
override fun createEnforcer(context: ExecutionContext): PackageEnforcer =
PackageEnforcer(context)
}
object KeyHelper {
operator fun get(id: String) = factory.key(id)
}
companion object {
val factory: Factory =
Factory()
}
}