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

Fri, 18 Dec 2020 16:16:54 +0100

author
Mike Becker <universe@uap-core.de>
date
Fri, 18 Dec 2020 16:16:54 +0100
changeset 165
b1fc8aed5969
parent 150
822b7e3d064d
child 180
009700915269
permissions
-rw-r--r--

Add mailto link to the display name above comments - fixes #112

universe@150 1 /*
universe@150 2 * Copyright 2020 Mike Becker. All rights reserved.
universe@150 3 *
universe@150 4 * Redistribution and use in source and binary forms, with or without
universe@150 5 * modification, are permitted provided that the following conditions are met:
universe@150 6 *
universe@150 7 * 1. Redistributions of source code must retain the above copyright
universe@150 8 * notice, this list of conditions and the following disclaimer.
universe@150 9 *
universe@150 10 * 2. Redistributions in binary form must reproduce the above copyright
universe@150 11 * notice, this list of conditions and the following disclaimer in the
universe@150 12 * documentation and/or other materials provided with the distribution.
universe@150 13 *
universe@150 14 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
universe@150 15 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
universe@150 16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
universe@150 17 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
universe@150 18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
universe@150 19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
universe@150 20 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
universe@150 21 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
universe@150 22 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
universe@150 23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
universe@150 24 *
universe@150 25 */
universe@149 26 package de.uapcore.lightpit.types
universe@149 27
universe@149 28
universe@149 29 /**
universe@149 30 * Represents a web color in hexadezimal representation.
universe@149 31 * @param arg the 6 digits hex string optionally preceded by a hash symbol
universe@149 32 */
universe@149 33 class WebColor(arg: String) {
universe@149 34
universe@149 35 /**
universe@149 36 * The color representation with the leading hash symbol.
universe@149 37 */
universe@149 38 val color: String = (if (arg.startsWith("#")) arg else "#$arg").toUpperCase()
universe@149 39
universe@149 40 /**
universe@149 41 * The hex representation without the leading hash symbol.
universe@149 42 */
universe@149 43 val hex: String = color.substring(1)
universe@149 44
universe@149 45 init {
universe@149 46 require(this.color.matches(Regex("#[0-9A-F]{6}"))) { "$color is not a color" }
universe@149 47 }
universe@149 48
universe@149 49 override fun toString(): String {
universe@149 50 return color
universe@149 51 }
universe@149 52 }

mercurial