Number

class Number<Item, CellValue : Number>(val filter: (value: CellValue, filter: Filter.Number.State<CellValue>) -> Boolean = { value, filter -> if (filter.value == null) true else { val valid: Boolean = when (filter.type) { FilterType.Equal -> value == filter.value FilterType.NotEqual -> value != filter.value FilterType.LargerOrEqual -> { when (value) { is Double -> (value as Double) >= (filter.value as Double) is Float -> (value as Float) >= (filter.value as Float) is Int -> (value as Int) >= (filter.value as Int) is Long -> (value as Long) >= (filter.value as Long) is Short -> (value as Short) >= (filter.value as Short) is Byte -> (value as Byte) >= (filter.value as Byte) else -> throw RuntimeException("Type not handled!") } } FilterType.Larger -> { when (value) { is Double -> (value as Double) > (filter.value as Double) is Float -> (value as Float) > (filter.value as Float) is Int -> (value as Int) > (filter.value as Int) is Long -> (value as Long) > (filter.value as Long) is Short -> (value as Short) > (filter.value as Short) is Byte -> (value as Byte) > (filter.value as Byte) else -> throw RuntimeException("Type not handled!") } } FilterType.SmallerOrEqual -> { when (value) { is Double -> (value as Double) <= (filter.value as Double) is Float -> (value as Float) <= (filter.value as Float) is Int -> (value as Int) <= (filter.value as Int) is Long -> (value as Long) <= (filter.value as Long) is Short -> (value as Short) <= (filter.value as Short) is Byte -> (value as Byte) <= (filter.value as Byte) else -> throw RuntimeException("Type not handled!") } } FilterType.Smaller -> { when (value) { is Double -> (value as Double) < (filter.value as Double) is Float -> (value as Float) < (filter.value as Float) is Int -> (value as Int) < (filter.value as Int) is Long -> (value as Long) < (filter.value as Long) is Short -> (value as Short) < (filter.value as Short) is Byte -> (value as Byte) < (filter.value as Byte) else -> throw RuntimeException("Type not handled!") } } FilterType.Contains -> value.toString().contains(filter.value.toString()) FilterType.ContainsNot -> !value.toString().contains(filter.value.toString()) FilterType.StartsWith -> value.toString().startsWith(filter.value.toString()) FilterType.EndsWith -> value.toString().endsWith(filter.value.toString()) } valid } }, val instance: CellValue, initial: CellValue? = null) : Filter<Item, CellValue>

Constructors

Link copied to clipboard
constructor(filter: (value: CellValue, filter: Filter.Number.State<CellValue>) -> Boolean = { value, filter -> if (filter.value == null) true else { val valid: Boolean = when (filter.type) { FilterType.Equal -> value == filter.value FilterType.NotEqual -> value != filter.value FilterType.LargerOrEqual -> { when (value) { is Double -> (value as Double) >= (filter.value as Double) is Float -> (value as Float) >= (filter.value as Float) is Int -> (value as Int) >= (filter.value as Int) is Long -> (value as Long) >= (filter.value as Long) is Short -> (value as Short) >= (filter.value as Short) is Byte -> (value as Byte) >= (filter.value as Byte) else -> throw RuntimeException("Type not handled!") } } FilterType.Larger -> { when (value) { is Double -> (value as Double) > (filter.value as Double) is Float -> (value as Float) > (filter.value as Float) is Int -> (value as Int) > (filter.value as Int) is Long -> (value as Long) > (filter.value as Long) is Short -> (value as Short) > (filter.value as Short) is Byte -> (value as Byte) > (filter.value as Byte) else -> throw RuntimeException("Type not handled!") } } FilterType.SmallerOrEqual -> { when (value) { is Double -> (value as Double) <= (filter.value as Double) is Float -> (value as Float) <= (filter.value as Float) is Int -> (value as Int) <= (filter.value as Int) is Long -> (value as Long) <= (filter.value as Long) is Short -> (value as Short) <= (filter.value as Short) is Byte -> (value as Byte) <= (filter.value as Byte) else -> throw RuntimeException("Type not handled!") } } FilterType.Smaller -> { when (value) { is Double -> (value as Double) < (filter.value as Double) is Float -> (value as Float) < (filter.value as Float) is Int -> (value as Int) < (filter.value as Int) is Long -> (value as Long) < (filter.value as Long) is Short -> (value as Short) < (filter.value as Short) is Byte -> (value as Byte) < (filter.value as Byte) else -> throw RuntimeException("Type not handled!") } } FilterType.Contains -> value.toString().contains(filter.value.toString()) FilterType.ContainsNot -> !value.toString().contains(filter.value.toString()) FilterType.StartsWith -> value.toString().startsWith(filter.value.toString()) FilterType.EndsWith -> value.toString().endsWith(filter.value.toString()) } valid } }, instance: CellValue, initial: CellValue? = null)

Types

Link copied to clipboard
object Companion
Link copied to clipboard
data class State<CellValue>(val value: CellValue? = null, val type: Filter.FilterType = FilterType.Contains)

Properties

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Functions

Link copied to clipboard
open override fun clear()
Link copied to clipboard
open override fun ColumnScope.content()
Link copied to clipboard
open override fun RowScope.header()
Link copied to clipboard
open override fun info(): String
Link copied to clipboard
open override fun isActive(): Boolean
Link copied to clipboard
open override fun isValid(item: Item, itemToValue: (item: Item) -> CellValue): Boolean
Link copied to clipboard