Enhanced enum utilities: safe parsing, display names, and value mapping
implementation com.philiprehberger:enum-kitEnhanced enum utilities: safe parsing, display names, and value mapping.
implementation("com.philiprehberger:enum-kit:0.2.0")
<dependency>
<groupId>com.philiprehberger</groupId>
<artifactId>enum-kit</artifactId>
<version>0.2.0</version>
</dependency>
import com.philiprehberger.enumkit.*
enum class Color { RED, GREEN, BLUE }
valueOfOrNull<Color>("RED") // Color.RED
valueOfOrNull<Color>("invalid") // null
valueOfOrNull<Color>("red", ignoreCase = true) // Color.RED
enum class Status(override val displayName: String) : DisplayEnum {
PENDING("Pending"), IN_PROGRESS("In Progress");
}
fromDisplayName<Status>("In Progress") // Status.IN_PROGRESS
enum class Priority(override val value: Int) : ValueEnum<Int> {
LOW(0), NORMAL(1), HIGH(2);
}
fromValue<Priority, Int>(2) // Priority.HIGH
enumContains<Color>("RED") // true
enumContains<Color>("YELLOW") // false
enumContains<Color>("red", ignoreCase = true) // true
Color.RED.next() // Color.GREEN
Color.BLUE.next() // Color.RED (wraps)
enumNames<Color>() // ["RED", "GREEN", "BLUE"]
| Function / Class | Description |
|---|---|
valueOfOrNull<T>(name, ignoreCase) | Safe enum parsing, returns null instead of throwing |
enumContains<T>(name, ignoreCase) | Check if a name matches any enum constant |
enumNames<T>() | List all enum constant names |
enumRandom<T>() | Random enum constant |
T.next() / T.previous() | Navigate enum constants (wraps around) |
DisplayEnum | Interface for human-readable display names |
fromDisplayName<T>(name) | Look up by display name |
ValueEnum<V> | Interface for custom backing values |
fromValue<T, V>(value) | Look up by backing value |
enumSetOf(vararg) | Create a Set of enum constants |
./gradlew test # Run tests
./gradlew build # Build JAR
If you find this project useful: