
cdc.util.tuples.Tuple8 Maven / Gradle / Ivy
package cdc.util.tuples;
import java.util.Objects;
/**
* Tuple of 8 values.
*
* @author Damien Carbonne
*
* @param Value 0 type.
* @param Value 1 type.
* @param Value 2 type.
* @param Value 3 type.
* @param Value 4 type.
* @param Value 5 type.
* @param Value 6 type.
* @param Value 7 type.
*/
public class Tuple8 implements Tuple {
protected final T0 value0;
protected final T1 value1;
protected final T2 value2;
protected final T3 value3;
protected final T4 value4;
protected final T5 value5;
protected final T6 value6;
protected final T7 value7;
public Tuple8(T0 value0,
T1 value1,
T2 value2,
T3 value3,
T4 value4,
T5 value5,
T6 value6,
T7 value7) {
this.value0 = value0;
this.value1 = value1;
this.value2 = value2;
this.value3 = value3;
this.value4 = value4;
this.value5 = value5;
this.value6 = value6;
this.value7 = value7;
}
@Override
public final int size() {
return 8;
}
@Override
public Object getValue(int index) {
switch (index) {
case 0:
return value0;
case 1:
return value1;
case 2:
return value2;
case 3:
return value3;
case 4:
return value4;
case 5:
return value5;
case 6:
return value6;
case 7:
return value7;
default:
throw new IndexOutOfBoundsException();
}
}
/**
* @return Value 0.
*/
public final T0 getValue0() {
return value0;
}
/**
* @return Value 1.
*/
public final T1 getValue1() {
return value1;
}
/**
* @return Value 2.
*/
public final T2 getValue2() {
return value2;
}
/**
* @return Value 3.
*/
public final T3 getValue3() {
return value3;
}
/**
* @return Value 4.
*/
public final T4 getValue4() {
return value4;
}
/**
* @return Value 5.
*/
public final T5 getValue5() {
return value5;
}
/**
* @return Value 6.
*/
public final T6 getValue6() {
return value6;
}
/**
* @return Value 7.
*/
public final T7 getValue7() {
return value7;
}
@Override
public boolean equals(Object other) {
if (this == other) {
return true;
}
if (!(other instanceof Tuple8, ?, ?, ?, ?, ?, ?, ?>)) {
return false;
}
final Tuple8, ?, ?, ?, ?, ?, ?, ?> o = (Tuple8, ?, ?, ?, ?, ?, ?, ?>) other;
return Objects.equals(value0, o.value0)
&& Objects.equals(value1, o.value1)
&& Objects.equals(value2, o.value2)
&& Objects.equals(value3, o.value3)
&& Objects.equals(value4, o.value4)
&& Objects.equals(value5, o.value5)
&& Objects.equals(value6, o.value6)
&& Objects.equals(value7, o.value7);
}
@Override
public int hashCode() {
return Objects.hash(value0,
value1,
value2,
value3,
value4,
value5,
value6,
value7);
}
@Override
public String toString() {
return "[" + Objects.toString(value0)
+ ", " + Objects.toString(value1)
+ ", " + Objects.toString(value2)
+ ", " + Objects.toString(value3)
+ ", " + Objects.toString(value4)
+ ", " + Objects.toString(value5)
+ ", " + Objects.toString(value6)
+ ", " + Objects.toString(value7)
+ "]";
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy