diff -r 87364e7ec333 -r 30b840ed8c0e src/main/kotlin/de/uapcore/lightpit/types/WebColor.kt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/main/kotlin/de/uapcore/lightpit/types/WebColor.kt Fri Oct 23 18:40:50 2020 +0200 @@ -0,0 +1,27 @@ +package de.uapcore.lightpit.types + + +/** + * Represents a web color in hexadezimal representation. + * @param arg the 6 digits hex string optionally preceded by a hash symbol + */ +class WebColor(arg: String) { + + /** + * The color representation with the leading hash symbol. + */ + val color: String = (if (arg.startsWith("#")) arg else "#$arg").toUpperCase() + + /** + * The hex representation without the leading hash symbol. + */ + val hex: String = color.substring(1) + + init { + require(this.color.matches(Regex("#[0-9A-F]{6}"))) { "$color is not a color" } + } + + override fun toString(): String { + return color + } +} \ No newline at end of file