in parquet-column/src/main/java/org/apache/parquet/column/impl/ColumnReaderBase.java [222:438]
private void bind(PrimitiveTypeName type) {
binding = type.convert(new PrimitiveTypeNameConverter<Binding, RuntimeException>() {
@Override
public Binding convertFLOAT(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
return new Binding() {
float current;
@Override
void read() {
current = dataColumn.readFloat();
}
@Override
public void skip() {
current = 0;
dataColumn.skip();
}
@Override
void skip(int n) {
current = 0;
dataColumn.skip(n);
}
@Override
public float getFloat() {
return current;
}
@Override
void writeValue() {
converter.addFloat(current);
}
};
}
@Override
public Binding convertDOUBLE(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
return new Binding() {
double current;
@Override
void read() {
current = dataColumn.readDouble();
}
@Override
public void skip() {
current = 0;
dataColumn.skip();
}
@Override
void skip(int n) {
current = 0;
dataColumn.skip(n);
}
@Override
public double getDouble() {
return current;
}
@Override
void writeValue() {
converter.addDouble(current);
}
};
}
@Override
public Binding convertINT32(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
return new Binding() {
int current;
@Override
void read() {
current = dataColumn.readInteger();
}
@Override
public void skip() {
current = 0;
dataColumn.skip();
}
@Override
void skip(int n) {
current = 0;
dataColumn.skip(n);
}
@Override
public int getInteger() {
return current;
}
@Override
void writeValue() {
converter.addInt(current);
}
};
}
@Override
public Binding convertINT64(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
return new Binding() {
long current;
@Override
void read() {
current = dataColumn.readLong();
}
@Override
public void skip() {
current = 0;
dataColumn.skip();
}
@Override
void skip(int n) {
current = 0;
dataColumn.skip(n);
}
@Override
public long getLong() {
return current;
}
@Override
void writeValue() {
converter.addLong(current);
}
};
}
@Override
public Binding convertINT96(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
return this.convertBINARY(primitiveTypeName);
}
@Override
public Binding convertFIXED_LEN_BYTE_ARRAY(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
return this.convertBINARY(primitiveTypeName);
}
@Override
public Binding convertBOOLEAN(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
return new Binding() {
boolean current;
@Override
void read() {
current = dataColumn.readBoolean();
}
@Override
public void skip() {
current = false;
dataColumn.skip();
}
@Override
void skip(int n) {
current = false;
dataColumn.skip(n);
}
@Override
public boolean getBoolean() {
return current;
}
@Override
void writeValue() {
converter.addBoolean(current);
}
};
}
@Override
public Binding convertBINARY(PrimitiveTypeName primitiveTypeName) throws RuntimeException {
return new Binding() {
Binary current;
@Override
void read() {
current = dataColumn.readBytes();
}
@Override
public void skip() {
current = null;
dataColumn.skip();
}
@Override
void skip(int n) {
current = null;
dataColumn.skip(n);
}
@Override
public Binary getBinary() {
return current;
}
@Override
void writeValue() {
converter.addBinary(current);
}
};
}
});
}