
com.redis.om.spring.tuple.Quad Maven / Gradle / Ivy
package com.redis.om.spring.tuple;
import com.redis.om.spring.tuple.accessor.FirstAccessor;
import com.redis.om.spring.tuple.accessor.FourthAccessor;
import com.redis.om.spring.tuple.accessor.SecondAccessor;
import com.redis.om.spring.tuple.accessor.ThirdAccessor;
public interface Quad extends Tuple {
E1 getFirst();
E2 getSecond();
E3 getThird();
E4 getFourth();
@Override
default int size() {
return 4;
}
default Object get(int index) {
switch (index) {
case 0:
return getFirst();
case 1:
return getSecond();
case 2:
return getThird();
case 3:
return getFourth();
default:
throw new IndexOutOfBoundsException(
String.format("Index %d is outside bounds of tuple of degree %s", index, size()));
}
}
static FirstAccessor, E1> getFirstGetter() {
return Quad::getFirst;
}
static SecondAccessor, E2> getSecondGetter() {
return Quad::getSecond;
}
static ThirdAccessor, E3> getThirdGetter() {
return Quad::getThird;
}
static FourthAccessor, E4> getFourthGetter() {
return Quad::getFourth;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy