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