1 package net.pterodactylus.rhynodge.webpages.weather.wettercom
4 * Container for weather conditions of a single hour.
6 * @author [David ‘Bombe’ Roden](mailto:bombe@pterodactylus.net)
8 data class HourState(val hourIndex: Int, val temperature: Double, val rainProbability: Double, val rainAmount: Double, val windDirection: WindDirection, val windSpeed: Double, val description: String, val image: String) {
10 class Builder(private val hourIndex: Int) {
12 fun temperature(temperature: Double) = _1(temperature)
14 inner class _1(private val temperature: Double) {
16 fun rainProbability(rainProbability: Double) = _2(rainProbability)
18 inner class _2(private val rainProbability: Double) {
20 fun rainAmount(rainAmount: Double) = _3(rainAmount)
22 inner class _3(private val rainAmount: Double) {
24 fun windFrom(windDirection: WindDirection) = _4(windDirection);
26 inner class _4(private val windDirection: WindDirection) {
28 fun at(windSpeed: Double) = _5(windSpeed)
30 inner class _5(private val windSpeed: Double) {
32 fun describedAs(description: String) = _6(description)
34 inner class _6(private val description: String) {
36 fun withImage(imageUrl: String) = _7(imageUrl)
38 inner class _7(private val imageUrl: String) {
40 fun build(): HourState {
41 return HourState(hourIndex, temperature, rainProbability, rainAmount, windDirection, windSpeed, description, imageUrl)
62 fun atHour(hourIndex: Int) = Builder(hourIndex)