in java/fury-core/src/main/java/org/apache/fury/serializer/AbstractObjectSerializer.java [585:678]
static boolean readBasicNullableObjectFieldValueFailed(
Fury fury,
MemoryBuffer buffer,
Object targetObject,
FieldAccessor fieldAccessor,
short classId) {
if (!fury.isBasicTypesRefIgnored()) {
return true; // let common path handle this.
}
// add time types serialization here.
switch (classId) {
case ClassResolver.STRING_CLASS_ID: // fastpath for string.
fieldAccessor.putObject(targetObject, fury.readJavaStringRef(buffer));
return false;
case ClassResolver.BOOLEAN_CLASS_ID:
{
if (buffer.readByte() == Fury.NULL_FLAG) {
fieldAccessor.putObject(targetObject, null);
} else {
fieldAccessor.putObject(targetObject, buffer.readBoolean());
}
return false;
}
case ClassResolver.BYTE_CLASS_ID:
{
if (buffer.readByte() == Fury.NULL_FLAG) {
fieldAccessor.putObject(targetObject, null);
} else {
fieldAccessor.putObject(targetObject, buffer.readByte());
}
return false;
}
case ClassResolver.CHAR_CLASS_ID:
{
if (buffer.readByte() == Fury.NULL_FLAG) {
fieldAccessor.putObject(targetObject, null);
} else {
fieldAccessor.putObject(targetObject, buffer.readChar());
}
return false;
}
case ClassResolver.SHORT_CLASS_ID:
{
if (buffer.readByte() == Fury.NULL_FLAG) {
fieldAccessor.putObject(targetObject, null);
} else {
fieldAccessor.putObject(targetObject, buffer.readInt16());
}
return false;
}
case ClassResolver.INTEGER_CLASS_ID:
{
if (buffer.readByte() == Fury.NULL_FLAG) {
fieldAccessor.putObject(targetObject, null);
} else {
if (fury.compressInt()) {
fieldAccessor.putObject(targetObject, buffer.readVarInt32());
} else {
fieldAccessor.putObject(targetObject, buffer.readInt32());
}
}
return false;
}
case ClassResolver.FLOAT_CLASS_ID:
{
if (buffer.readByte() == Fury.NULL_FLAG) {
fieldAccessor.putObject(targetObject, null);
} else {
fieldAccessor.putObject(targetObject, buffer.readFloat32());
}
return false;
}
case ClassResolver.LONG_CLASS_ID:
{
if (buffer.readByte() == Fury.NULL_FLAG) {
fieldAccessor.putObject(targetObject, null);
} else {
fieldAccessor.putObject(targetObject, fury.readInt64(buffer));
}
return false;
}
case ClassResolver.DOUBLE_CLASS_ID:
{
if (buffer.readByte() == Fury.NULL_FLAG) {
fieldAccessor.putObject(targetObject, null);
} else {
fieldAccessor.putObject(targetObject, buffer.readFloat64());
}
return false;
}
default:
return true;
}
}