src/main/kotlin/de/uapcore/lightpit/types/WebColor.kt

Fri, 23 Oct 2020 18:40:50 +0200

author
Mike Becker <universe@uap-core.de>
date
Fri, 23 Oct 2020 18:40:50 +0200
changeset 149
30b840ed8c0e
child 150
822b7e3d064d
permissions
-rw-r--r--

migrate WebColor

149
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
1 package de.uapcore.lightpit.types
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
2
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
3
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
4 /**
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
5 * Represents a web color in hexadezimal representation.
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
6 * @param arg the 6 digits hex string optionally preceded by a hash symbol
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
7 */
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
8 class WebColor(arg: String) {
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
9
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
10 /**
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
11 * The color representation with the leading hash symbol.
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
12 */
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
13 val color: String = (if (arg.startsWith("#")) arg else "#$arg").toUpperCase()
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
14
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
15 /**
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
16 * The hex representation without the leading hash symbol.
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
17 */
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
18 val hex: String = color.substring(1)
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
19
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
20 init {
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
21 require(this.color.matches(Regex("#[0-9A-F]{6}"))) { "$color is not a color" }
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
22 }
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
23
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
24 override fun toString(): String {
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
25 return color
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
26 }
30b840ed8c0e migrate WebColor
Mike Becker <universe@uap-core.de>
parents:
diff changeset
27 }

mercurial