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