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

org.babyfish.jimmer.sql.ast.tuple.Tuple8.kt Maven / Gradle / Ivy

There is a newer version: 0.8.180
Show newest version
package org.babyfish.jimmer.sql.ast.tuple

import org.babyfish.jimmer.sql.ast.impl.TupleImplementor
import java.util.function.BiFunction

data class Tuple8(
    val _1: T1,
    val _2: T2,
    val _3: T3,
    val _4: T4,
    val _5: T5,
    val _6: T6,
    val _7: T7,
    val _8: T8
) : TupleImplementor {

    override fun size(): Int = 8

    override operator fun get(index: Int): Any? =
        when (index) {
            0 -> _1
            1 -> _2
            2 -> _3
            3 -> _4
            4 -> _5
            5 -> _6
            6 -> _7
            7 -> _8
            else -> throw IllegalArgumentException("Index must between 0 and ${size() - 1}")
        }

    override fun convert(block: BiFunction): TupleImplementor =
        Tuple8(
            block.apply(_1, 0),
            block.apply(_2, 1),
            block.apply(_3, 2),
            block.apply(_4, 3),
            block.apply(_5, 4),
            block.apply(_6, 5),
            block.apply(_7, 6),
            block.apply(_8, 7)
        )

    companion object {
        @JvmStatic
        @Suppress("UNCHECKED_CAST")
        fun  projection1(tuples: Collection>) : Collection =
            TupleImplementor.projection(tuples, 0) as Collection

        @JvmStatic
        @Suppress("UNCHECKED_CAST")
        fun  projection2(tuples: Collection>) : Collection =
            TupleImplementor.projection(tuples, 1) as Collection

        @JvmStatic
        @Suppress("UNCHECKED_CAST")
        fun  projection3(tuples: Collection>) : Collection =
            TupleImplementor.projection(tuples, 2) as Collection

        @JvmStatic
        @Suppress("UNCHECKED_CAST")
        fun  projection4(tuples: Collection>) : Collection =
            TupleImplementor.projection(tuples, 3) as Collection

        @JvmStatic
        @Suppress("UNCHECKED_CAST")
        fun  projection5(tuples: Collection>) : Collection =
            TupleImplementor.projection(tuples, 4) as Collection

        @JvmStatic
        @Suppress("UNCHECKED_CAST")
        fun  projection6(tuples: Collection>) : Collection =
            TupleImplementor.projection(tuples, 5) as Collection

        @JvmStatic
        @Suppress("UNCHECKED_CAST")
        fun  projection7(tuples: Collection>) : Collection =
            TupleImplementor.projection(tuples, 6) as Collection

        @JvmStatic
        @Suppress("UNCHECKED_CAST")
        fun  projection8(tuples: Collection>) : Collection =
            TupleImplementor.projection(tuples, 7) as Collection
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy