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

commonMain.com.prof18.rssparser.model.RssChannel.kt Maven / Gradle / Ivy

package com.prof18.rssparser.model

data class RssChannel(
    val title: String?,
    val link: String?,
    val description: String?,
    val image: RssImage?,
    val lastBuildDate: String?,
    val updatePeriod: String?,
    val items: List,
    val itunesChannelData: ItunesChannelData?
) {
    internal data class Builder(
        private var title: String? = null,
        private var link: String? = null,
        private var description: String? = null,
        private var image: RssImage? = null,
        private var lastBuildDate: String? = null,
        private var updatePeriod: String? = null,
        private val items: MutableList = mutableListOf(),
        private var itunesChannelData: ItunesChannelData? = null
    ) {
        fun title(title: String?) = apply { this.title = title }
        fun link(link: String?) = apply { this.link = link }
        fun description(description: String?) = apply { this.description = description }
        fun image(image: RssImage) = apply { this.image = image }
        fun lastBuildDate(lastBuildDate: String?) = apply { this.lastBuildDate = lastBuildDate }
        fun updatePeriod(updatePeriod: String?) = apply { this.updatePeriod = updatePeriod }
        fun addItem(item: RssItem) = apply { this.items.add(item) }
        fun itunesChannelData(itunesChannelData: ItunesChannelData?) =
            apply { this.itunesChannelData = itunesChannelData }

        fun build() = RssChannel(
            title = title,
            link = link,
            description = description,
            image = image,
            lastBuildDate = lastBuildDate,
            updatePeriod = updatePeriod,
            items = items,
            itunesChannelData = itunesChannelData
        )
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy