PlainValue.kt
package de.pflugradts.passbird.domain.model.shell
const val MIN_ASCII_VALUE = 32
const val MAX_ASCII_VALUE = 126
const val FIRST_DIGIT_INDEX = 48
const val LAST_DIGIT_INDEX = 57
const val FIRST_UPPERCASE_INDEX = 65
const val LAST_UPPERCASE_INDEX = 90
const val FIRST_LOWERCASE_INDEX = 97
const val LAST_LOWERCASE_INDEX = 122
class PlainValue private constructor(private val value: Char) {
val isDigit get() = value.code in FIRST_DIGIT_INDEX..LAST_DIGIT_INDEX
val isUppercaseCharacter get() = value.code in FIRST_UPPERCASE_INDEX..LAST_UPPERCASE_INDEX
val isLowercaseCharacter get() = value.code in FIRST_LOWERCASE_INDEX..LAST_LOWERCASE_INDEX
val isAlphabeticCharacter get() = isUppercaseCharacter || isLowercaseCharacter
val isSymbol get() = !(isDigit || isAlphabeticCharacter)
companion object {
fun plainValueOf(b: Byte) = PlainValue(Char(b.toUShort()))
fun plainValueOf(i: Int) = PlainValue(i.toChar())
fun plainValueOf(c: Char) = PlainValue(c)
}
}