package application.model import java.util.* class Vessel(val mmsi: String?) { val messages: SortedMap = sortedMapOf() var messageToDisplay: Message? = null get() { // messages.forEach { (key, value) -> // if(observableCurrentTime.value < key) { // field = value // return@forEach // } // } field = messages.asSequence().map{ it }.firstOrNull {observableCurrentTime.value < it.key}.let { it?.value } return field } // val timesNormalized : SortedMap = sortedMapOf() // fun getAllNormalizedDate(): SortedMap { // var offset: Long? = null // if(timesNormalized.size == 0){ // messages.keys.forEach { // val currentTime = it.toEpochSecond(ZoneOffset.UTC) // if(offset == null){ // offset = currentTime // } // timesNormalized[currentTime - offset!!]= it // } // } // return timesNormalized // } fun getAllTime(): ArrayList { val timeList = arrayListOf() messages.forEach { timeList.add(it.value.time) } return timeList } fun getAllLatitude(): ArrayList { val latitudeList = arrayListOf() messages.forEach { latitudeList.add(it.value.latitude) } return latitudeList } fun getAllLongitude(): ArrayList { val longitudeList = arrayListOf() messages.forEach { longitudeList.add(it.value.longitude) } return longitudeList } fun getAllSpeedOverGround(): ArrayList { val speedOverGroundList = arrayListOf() messages.forEach { speedOverGroundList.add(it.value.speedOverGround) } return speedOverGroundList } fun getAllCourseOverGround(): ArrayList { val res = arrayListOf() messages.forEach { res.add(it.value.courseOverGround) } return res } fun getAllHeading(): ArrayList { val res = arrayListOf() messages.forEach { res.add(it.value.heading) } return res } fun getAllVesselName(): ArrayList { val res = arrayListOf() messages.forEach { res.add(it.value.vesselName) } return res } fun getAllIMO(): ArrayList { val res = arrayListOf() messages.forEach { res.add(it.value.imo) } return res } fun getAllCallSign(): ArrayList { val res = arrayListOf() messages.forEach { res.add(it.value.callSign) } return res } fun getAllVesselType(): ArrayList { val res = arrayListOf() messages.forEach { res.add(it.value.vesselType) } return res } fun getAllStatus(): ArrayList { val res = arrayListOf() messages.forEach { res.add(it.value.status) } return res } fun getAllLength(): ArrayList { val res = arrayListOf() messages.forEach { res.add(it.value.length) } return res } fun getAllWidth(): ArrayList { val res = arrayListOf() messages.forEach { res.add(it.value.width) } return res } fun getAllDraft(): ArrayList { val res = arrayListOf() messages.forEach { res.add(it.value.draft) } return res } fun getAllCargo(): ArrayList { val res = arrayListOf() messages.forEach { res.add(it.value.cargo) } return res } companion object{ var maxTime: Long = 0 var minTime: Long = 0 } }