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

com.github.bingoohuang.utils.tuple.Tuple5 Maven / Gradle / Ivy

package com.github.bingoohuang.utils.tuple;


import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

/**
 * A tuple that holds two non-null values.
 *
 * @param  The type of the first nullable value held by this tuple
 * @param  The type of the second nullable value held by this tuple
 * @param  The type of the third nullable value held by this tuple
 * @param  The type of the fourth nullable value held by this tuple
 * @param  The type of the fifth nullable value held by this tuple
 */
@Getter @Setter @EqualsAndHashCode(callSuper = true) @NoArgsConstructor
public class Tuple5 extends Tuple4 {
    T5 t5;

    public Tuple5(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5) {
        super(t1, t2, t3, t4);
        this.t5 = t5;
    }

    /**
     * Get the object at the given index.
     *
     * @param index The index of the object to retrieve. Starts at 0.
     * @return The object or {@literal null} if out of bounds.
     */
    public Object get(int index) {
        switch (index) {
            case 4:
                return t5;
            default:
                return super.get(index);
        }
    }

    /**
     * Turn this {@literal Tuples} into a plain Object array.
     *
     * @return A new Object array.
     */
    public Object[] toArray() {
        return new Object[]{t1, t2, t3, t4, t5};
    }

    /**
     * Return the number of elements in this {@literal Tuples}.
     *
     * @return The size of this {@literal Tuples}.
     */
    public int size() {
        return 5;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy