final InternalReadAccessor extractor,
final FieldValue value) {
this.index = index;
this.isNull = value.isNull();
final ValueType vtype = extractor.getValueType();
if ( vtype.isBoolean() ) {
this.type = BOOL;
if ( !isNull ) {
this.bvalue = value.getBooleanValue();
this.setHashCode( this.bvalue ? 1231 : 1237 );
} else {
this.setHashCode( 0 );
}
} else if ( vtype.isIntegerNumber() ) {
this.type = LONG;
if ( !isNull ) {
this.lvalue = value.getLongValue();
this.setHashCode( (int) (this.lvalue ^ (this.lvalue >>> 32)) );
} else {
this.setHashCode( 0 );
}
} else if ( vtype.isFloatNumber() ) {
this.type = DOUBLE;
if ( !isNull ) {
this.dvalue = value.getDoubleValue();
final long temp = Double.doubleToLongBits( this.dvalue );
this.setHashCode( (int) (temp ^ (temp >>> 32)) );