package FlexibleEncoding.Parquet;
/*
* adapt from parquet
*
*/
public interface ColumnReader {
/**
* @return the totalCount of values to be consumed
*/
long getTotalValueCount();
/**
* Consume the current triplet, moving to the next value.
*/
void consume();
/**
* must return 0 when isFullyConsumed() == true
* @return the repetition level for the current value
*/
int getCurrentRepetitionLevel();
/**
* @return the definition level for the current value
*/
int getCurrentDefinitionLevel();
/**
* writes the current value to the converter
*/
void writeCurrentValueToConverter();
/**
* Skip the current value
*/
void skip();
/**
* available when the underlying encoding is dictionary based
* @return the dictionary id for the current value
*/
int getCurrentValueDictionaryID();
/**
* @return the current value
*/
int getInteger();
/**
* @return the current value
*/
boolean getBoolean();
/**
* @return the current value
*/
long getLong();
/**
* @return the current value
*/
Binary getBinary();
/**
* @return the current value
*/
float getFloat();
/**
* @return the current value
*/
double getDouble();
/**
* @return Descriptor of the column.
*/
ColumnDescriptor getDescriptor();
}