use of com.datastax.oss.driver.api.core.type.codec.PrimitiveFloatCodec in project java-driver by datastax.
the class SettableByIndex method setFloat.
/**
* Sets the {@code i}th value to the provided Java primitive float.
*
* <p>By default, this works with CQL type {@code float}.
*
* <p>To set the value to CQL {@code NULL}, use {@link #setToNull(int)}, or {@code set(i, v,
* Float.class)}.
*
* @throws IndexOutOfBoundsException if the index is invalid.
*/
@NonNull
@CheckReturnValue
default SelfT setFloat(int i, float v) {
DataType cqlType = getType(i);
TypeCodec<Float> codec = codecRegistry().codecFor(cqlType, Float.class);
return (codec instanceof PrimitiveFloatCodec) ? setBytesUnsafe(i, ((PrimitiveFloatCodec) codec).encodePrimitive(v, protocolVersion())) : set(i, v, codec);
}
use of com.datastax.oss.driver.api.core.type.codec.PrimitiveFloatCodec in project java-driver by datastax.
the class GettableByIndex method getFloat.
/**
* Returns the {@code i}th value as a Java primitive float.
*
* <p>By default, this works with CQL type {@code float}.
*
* <p>Note that, due to its signature, this method cannot return {@code null}. If the CQL value is
* {@code NULL}, it will return {@code 0.0}. If this doesn't work for you, either call {@link
* #isNull(int)} before calling this method, or use {@code get(i, Float.class)} instead.
*
* @throws IndexOutOfBoundsException if the index is invalid.
*/
default float getFloat(int i) {
DataType cqlType = getType(i);
TypeCodec<Float> codec = codecRegistry().codecFor(cqlType, Float.class);
if (codec instanceof PrimitiveFloatCodec) {
return ((PrimitiveFloatCodec) codec).decodePrimitive(getBytesUnsafe(i), protocolVersion());
} else {
Float value = get(i, codec);
return value == null ? 0 : value;
}
}
Aggregations