wetter.com state can iterate over its hour states
[rhynodge.git] / src / main / kotlin / net / pterodactylus / rhynodge / webpages / weather / wettercom / WetterComState.kt
1 package net.pterodactylus.rhynodge.webpages.weather.wettercom
2
3 import net.pterodactylus.rhynodge.states.AbstractState
4 import java.time.ZonedDateTime
5
6 /**
7  * Contains the state parsed from [wetter.com](https://www.wetter.com/).
8  *
9  * @author [David ‘Bombe’ Roden](mailto:bombe@pterodactylus.net)
10  */
11 class WetterComState(val dateTime: ZonedDateTime) : AbstractState(true), Iterable<HourState> {
12
13     val hours: List<HourState> = mutableListOf()
14
15     fun addHour(hourState: HourState) {
16         (hours as MutableList<HourState>).add(hourState)
17     }
18
19     override fun iterator(): Iterator<HourState> {
20         return hours.iterator()
21     }
22
23     override fun equals(other: Any?): Boolean {
24         other as? WetterComState ?: return false
25         return (dateTime == other.dateTime) and (hours == other.hours)
26     }
27
28 }