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

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()
}
}