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

com.github.jasync.sql.db.general.ArrayRowData.kt Maven / Gradle / Ivy

package com.github.jasync.sql.db.general

import com.github.jasync.sql.db.RowData

class ArrayRowData(val row: Int, val mapping: Map, val columns: Array) : RowData {

    private val columnsList by lazy { columns.toList() }

    override fun contains(element: Any?): Boolean = columns.contains(element)
    override fun containsAll(elements: Collection): Boolean = columnsList.containsAll(elements)
    override fun indexOf(element: Any?): Int = columns.indexOf(element)
    override fun isEmpty(): Boolean = columns.isEmpty()
    override fun iterator(): Iterator = columns.iterator()
    override fun lastIndexOf(element: Any?): Int = columns.lastIndexOf(element)
    override fun listIterator(): ListIterator = columnsList.listIterator()
    override fun listIterator(index: Int): ListIterator = columnsList.listIterator(index)
    override fun subList(fromIndex: Int, toIndex: Int): List = columnsList.subList(fromIndex, toIndex)
    override val size: Int
        get() = columns.size

    /**
     *
     * Returns a column value by it's position in the originating query.
     *
     * @param index
     * @return
     */
    override fun get(index: Int): Any? = columns[index]

    /**
     *
     * Returns a column value by it's name in the originating query.
     *
     * @param column
     * @return
     */
    override fun get(column: String): Any? = columns[mapping.getValue(column)]

    /**
     *
     * Number of this row in the query results. Counts start at 0.
     *
     * @return
     */
    override fun rowNumber(): Int = row

    fun length(): Int = columns.size
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy