20 lines
510 B
Kotlin
20 lines
510 B
Kotlin
|
package net.shadowfacts.cacao.util
|
||
|
|
||
|
/**
|
||
|
* @author shadowfacts
|
||
|
*/
|
||
|
object EnumHelper {
|
||
|
|
||
|
fun <E: Enum<E>> next(value: E): E {
|
||
|
val constants = value.declaringClass.enumConstants
|
||
|
val index = constants.indexOf(value) + 1
|
||
|
return if (index < constants.size) constants[index] else constants.first()
|
||
|
}
|
||
|
|
||
|
fun <E: Enum<E>> previous(value: E): E {
|
||
|
val constants = value.declaringClass.enumConstants
|
||
|
val index = constants.indexOf(value) - 1
|
||
|
return if (index >= 0) constants[index] else constants.last()
|
||
|
}
|
||
|
|
||
|
}
|