public class CompatibleFieldSerializer extends Serializer
There is additional overhead compared to FieldSerializer
. A header is output the first time an object of a given type
is serialized. The header consists of an int for the number of fields, then a String for each field name. Also, to support
skipping the bytes for a field that no longer exists, for each field value an int is written that is the length of the value in
bytes.
Modifier and Type | Class and Description |
---|---|
class |
CompatibleFieldSerializer.CachedField
Controls how a field will be serialized.
|
Constructor and Description |
---|
CompatibleFieldSerializer(Kryo kryo,
java.lang.Class type) |
Modifier and Type | Method and Description |
---|---|
CompatibleFieldSerializer.CachedField |
getField(java.lang.String fieldName)
Allows specific fields to be optimized.
|
<T> T |
readObjectData(java.nio.ByteBuffer buffer,
java.lang.Class<T> type)
Reads an object from the buffer.
|
void |
removeField(java.lang.String fieldName)
Removes a field so that it won't be serialized.
|
void |
setFieldsAsAccessible(boolean setFieldsAsAccessible)
Controls which fields are accessed.
|
void |
setFieldsCanBeNull(boolean fieldsCanBeNull)
Sets the default value for
CompatibleFieldSerializer.CachedField.setCanBeNull(boolean) . |
void |
writeObjectData(java.nio.ByteBuffer buffer,
java.lang.Object object)
Writes the object to the buffer.
|
isFinal, newInstance, readObject, setCanBeNull, writeObject
public CompatibleFieldSerializer(Kryo kryo, java.lang.Class type)
public void setFieldsCanBeNull(boolean fieldsCanBeNull)
CompatibleFieldSerializer.CachedField.setCanBeNull(boolean)
.fieldsCanBeNull
- False if none of the fields are null. Saves 1 byte per field. True if it is not known (default).public void setFieldsAsAccessible(boolean setFieldsAsAccessible)
setFieldsAsAccessible
- If true, all non-transient fields (inlcuding private fields) will be serialized and
set as accessible
(default). If false, only fields in the public API will be
serialized.public void writeObjectData(java.nio.ByteBuffer buffer, java.lang.Object object)
Serializer
writeObjectData
in class Serializer
object
- Cannot be null.public <T> T readObjectData(java.nio.ByteBuffer buffer, java.lang.Class<T> type)
Serializer
readObjectData
in class Serializer
public CompatibleFieldSerializer.CachedField getField(java.lang.String fieldName)
public void removeField(java.lang.String fieldName)