in src/main/java/net/hydromatic/linq4j/expressions/Primitive.java [742:774]
public void arrayItem(Object dataSet, int ordinal, Sink sink) {
switch (this) {
case DOUBLE:
sink.set(Array.getDouble(dataSet, ordinal));
return;
case FLOAT:
sink.set(Array.getFloat(dataSet, ordinal));
return;
case BOOLEAN:
sink.set(Array.getBoolean(dataSet, ordinal));
return;
case BYTE:
sink.set(Array.getByte(dataSet, ordinal));
return;
case CHAR:
sink.set(Array.getChar(dataSet, ordinal));
return;
case SHORT:
sink.set(Array.getShort(dataSet, ordinal));
return;
case INT:
sink.set(Array.getInt(dataSet, ordinal));
return;
case LONG:
sink.set(Array.getLong(dataSet, ordinal));
return;
case OTHER:
sink.set(Array.get(dataSet, ordinal));
return;
default:
throw new AssertionError("unexpected " + this);
}
}