BacklogItemState.kt

package nl.marc.devops.board.task_states

import nl.marc.devops.board.BacklogItem
import nl.marc.devops.projects.Role

abstract class BacklogItemState {
    abstract val associatedRole: Role

    abstract val swimlane: String

    open fun startDevelopment(context: BacklogItem) {
        throw IllegalStateException(DEFAULT_ERROR_MESSAGE)
    }

    open fun setDevelopmentCompleted(context: BacklogItem) {
        throw IllegalStateException(DEFAULT_ERROR_MESSAGE)
    }

    open fun setPlannedForTesting(context: BacklogItem) {
        throw IllegalStateException(DEFAULT_ERROR_MESSAGE)
    }

    open fun setTestingInProgress(context: BacklogItem) {
        throw IllegalStateException(DEFAULT_ERROR_MESSAGE)
    }

    open fun testingSucceeded(context: BacklogItem) {
        throw IllegalStateException(DEFAULT_ERROR_MESSAGE)
    }

    open fun testingFailed(context: BacklogItem) {
        throw IllegalStateException(DEFAULT_ERROR_MESSAGE)
    }

    open fun passesDefinitionOfDone(context: BacklogItem) {
        throw IllegalStateException(DEFAULT_ERROR_MESSAGE)
    }

    open fun failedDefinitionOfDone(context: BacklogItem) {
        throw IllegalStateException(DEFAULT_ERROR_MESSAGE)
    }

    companion object {
        const val DEFAULT_ERROR_MESSAGE = "Not allowed in this state"
    }
}