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.
42 lines
1.0 KiB
Kotlin
42 lines
1.0 KiB
Kotlin
package me.eater.hefbrug.dsl.context.impl
|
|
|
|
import me.eater.hefbrug.definition.impl.PackageDefinition
|
|
import me.eater.hefbrug.dsl.context.DefinitionContext
|
|
import me.eater.hefbrug.dsl.context.Emitter
|
|
import me.eater.hefbrug.dsl.context.EmitterContext
|
|
import me.eater.hefbrug.state.ExistenceStatus
|
|
import me.eater.hefbrug.state.impl.PackageState
|
|
|
|
class PackageContext(definition: PackageDefinition) : DefinitionContext<PackageState>(definition),
|
|
Emitter by EmitterContext() {
|
|
val id: String
|
|
get() = state.id
|
|
|
|
fun upgrade(upgrade: Boolean) {
|
|
state.upgrade = upgrade
|
|
}
|
|
|
|
var ensure by proxy(state::status)
|
|
|
|
val upgraded: Unit
|
|
get() {
|
|
state.upgrade = true
|
|
}
|
|
|
|
val held: Unit
|
|
get() {
|
|
state.upgrade = false
|
|
}
|
|
|
|
val installed: Unit
|
|
get() {
|
|
state.status = ExistenceStatus.Present
|
|
}
|
|
|
|
val absent: Unit
|
|
get() {
|
|
state.status = ExistenceStatus.Absent
|
|
}
|
|
|
|
var name: String by proxy(state::name)
|
|
} |