All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.github.serpro69.kfaker.books.provider.Dune.kt Maven / Gradle / Ivy

Go to download

Generate realistically looking fake data such as names, addresses, banking details, and many more, that can be used for testing and data anonymization purposes.

There is a newer version: 2.0.0-rc.7
Show newest version
package io.github.serpro69.kfaker.books.provider

import io.github.serpro69.kfaker.FakerService
import io.github.serpro69.kfaker.RandomService
import io.github.serpro69.kfaker.dictionary.YamlCategory
import io.github.serpro69.kfaker.provider.FakeDataProvider
import io.github.serpro69.kfaker.provider.YamlFakeDataProvider
import io.github.serpro69.kfaker.provider.unique.LocalUniqueDataProvider
import io.github.serpro69.kfaker.provider.unique.UniqueProviderDelegate

/**
 * [FakeDataProvider] implementation for [YamlCategory.DUNE] category.
 */
@Suppress("unused")
class Dune internal constructor(
    fakerService: FakerService,
    private val randomService: RandomService,
) : YamlFakeDataProvider(fakerService) {
    override val yamlCategory = YamlCategory.DUNE
    override val localUniqueDataProvider = LocalUniqueDataProvider()
    override val unique by UniqueProviderDelegate(localUniqueDataProvider, fakerService)

    init {
        fakerService.load(yamlCategory)
    }

    fun characters() = resolve("characters")
    fun titles() = resolve("titles")
    fun planets() = resolve("planets")
    fun cities() = resolve("cities")

    fun quotes(character: QuoteCharacter = randomService.nextEnum()) =
        resolve("quotes", character.name.lowercase())

    fun sayings(origin: SayingOrigin = randomService.nextEnum()) =
        resolve("sayings", origin.name.lowercase())

    enum class QuoteCharacter {
        GUILD_NAVIGATOR,
        EMPEROR,
        PAUL,
        THUFIR,
        JESSICA,
        IRULAN,
        MOHIAM,
        GURNEY,
        LETO,
        STILGAR,
        LIET_KYNES,
        PARDOT_KYNES,
        BARON_HARKONNEN,
        PITER,
        ALIA,
        MAPES,
        DUNCAN,
        YUEH,
        ;
    }

    enum class SayingOrigin {
        BENE_GESSERIT,
        FREMEN,
        MENTAT,
        MUADDIB,
        ORANGE_CATHOLIC_BIBLE,
        ;
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy