Vessel.kt 3.59 KB
package application.model

import java.time.LocalDateTime
import java.time.ZoneOffset
import java.util.*


class Vessel(val mmsi: Int?) {
    val messages: SortedMap<LocalDateTime, Message> = sortedMapOf()

    fun getAllTimeInMilliSeconde(): ArrayList<Long> {
        val timeList = arrayListOf<Long>()
        var timeInMilliSeconde: Long
        messages.forEach {
            timeInMilliSeconde = it.value.time.value.toEpochSecond(ZoneOffset.UTC).toInt().toLong()
            timeList.add(timeInMilliSeconde)
        }
        return timeList
    }

    fun getAllTime(): ArrayList<MessageData?> {
        val timeList = arrayListOf<MessageData?>()
        messages.forEach {
            timeList.add(it.value.time)
        }

        return timeList
    }

    fun getAllLatitude(): ArrayList<MessageData?> {
        val latitudeList = arrayListOf<MessageData?>()
        messages.forEach {
            latitudeList.add(it.value.latitude)
        }

        return latitudeList
    }

    fun getAllLongitude(): ArrayList<MessageData?> {
        val longitudeList = arrayListOf<MessageData?>()
        messages.forEach {
            longitudeList.add(it.value.longitude)
        }

        return longitudeList
    }

    fun getAllSpeedOverGround(): ArrayList<MessageData?> {
        val speedOverGroundList = arrayListOf<MessageData?>()
        messages.forEach {
            speedOverGroundList.add(it.value.speedOverGround)
        }

        return speedOverGroundList
    }

    fun getAllCourseOverGround(): ArrayList<MessageData?> {
        val res = arrayListOf<MessageData?>()
        messages.forEach {
            res.add(it.value.courseOverGround)
        }

        return res
    }

    fun getAllHeading(): ArrayList<MessageData?> {
        val res = arrayListOf<MessageData?>()
        messages.forEach {
            res.add(it.value.heading)
        }

        return res
    }

    fun getAllVesselName(): ArrayList<MessageData?> {
        val res = arrayListOf<MessageData?>()
        messages.forEach {
            res.add(it.value.vesselName)
        }
        return res
    }

    fun getAllIMO(): ArrayList<MessageData?> {
        val res = arrayListOf<MessageData?>()
        messages.forEach {
            res.add(it.value.imo)
        }
        return res
    }

    fun getAllCallSign(): ArrayList<MessageData?> {
        val res = arrayListOf<MessageData?>()
        messages.forEach {
            res.add(it.value.callSign)
        }
        return res
    }

    fun getAllVesselType(): ArrayList<MessageData?> {
        val res = arrayListOf<MessageData?>()
        messages.forEach {
            res.add(it.value.vesselType)
        }
        return res
    }

    fun getAllStatus(): ArrayList<MessageData?> {
        val res = arrayListOf<MessageData?>()
        messages.forEach {
            res.add(it.value.status)
        }
        return res
    }

    fun getAllLength(): ArrayList<MessageData?> {
        val res = arrayListOf<MessageData?>()
        messages.forEach {
            res.add(it.value.length)
        }
        return res
    }

    fun getAllWidth(): ArrayList<MessageData?> {
        val res = arrayListOf<MessageData?>()
        messages.forEach {
            res.add(it.value.width)
        }
        return res
    }

    fun getAllDraft(): ArrayList<MessageData?> {
        val res = arrayListOf<MessageData?>()
        messages.forEach {
            res.add(it.value.draft)
        }
        return res
    }

    fun getAllCargo(): ArrayList<MessageData?> {
        val res = arrayListOf<MessageData?>()
        messages.forEach {
            res.add(it.value.cargo)
        }
        return res
    }

}