36 lines
1.4 KiB
Kotlin
36 lines
1.4 KiB
Kotlin
package de.pheerai.rcdbquery.dataMappings
|
|
|
|
enum class Vendor(val prettyName: String, val fullName: String, val queryId: Int) {
|
|
INTAMIN("Intamin","Intamin Amusement Rides", 6837),
|
|
VEKOMA("Vekoma", 6836),
|
|
MACK("Mack Rides", "Mack Rides GmbH & Co KG", 6856),
|
|
GERSTLAUER("Gerstlauer", "Gerstlauer Amusement Rides GmbH", 6948),
|
|
ZIERER("Zierer", 6861),
|
|
MAURER("Maurer", "Maurer Rides GmbH", 6905),
|
|
B_AND_M("B&M", "Bolliger & Mabillard", 6831),
|
|
SBF_VISA("SBF Visa", "SBF Visa Group", 7028),
|
|
ZAMPERLA("Zamperla", 6892),
|
|
GCI("GCI", "Great Coasters International", 6860),
|
|
RMC("RMC", "Rocky Mountain Construction", 10583)
|
|
;
|
|
|
|
constructor(name: String, queryId: Int) : this(name, name, queryId)
|
|
|
|
val queryParam
|
|
get() = "${queryParamName}=${this.queryId}"
|
|
|
|
companion object {
|
|
const val queryParamName = "mk"
|
|
|
|
fun createQueryParam(vararg vendors: Vendor) = vendors.joinToString("&") { it.queryParam }
|
|
fun createQueryParam(name: String): String = createQueryParam(*searchByName(name).toTypedArray())
|
|
fun getByName(name: String): Vendor? = values().firstOrNull { it.prettyName == name }
|
|
fun searchByName(name: String): List<Vendor> {
|
|
val searchName = name.toLowerCase()
|
|
return values().filter {
|
|
it.prettyName.toLowerCase().contains(searchName)
|
|
}.toList()
|
|
}
|
|
}
|
|
}
|