public Serializer<A>
This interface specifies how Java Objects are serialized and de-serialized and also how objects are compared, hashed and tested for equality for use with MapDB.
Implementing classes do not have to be thread safe.
Modifier and Type | Field and Description |
---|---|
GroupSerializer<java.math.BigDecimal> |
BIG_DECIMAL |
GroupSerializer<java.math.BigInteger> |
BIG_INTEGER |
GroupSerializer<java.lang.Boolean> |
BOOLEAN
A predefined Serializer that handles non-null Boolean whereby Booleans are serialized to a one byte format. If a
null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<java.lang.Byte> |
BYTE
A predefined Serializer that handles non-null Byte whereby Bytes are serialized to a one byte format. This Serializer hashes Bytes using the original
Byte#hashCode() method. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<kotlin.Array[]> |
BYTE_ARRAY
Serializes
byte[] it adds header which contains size information |
GroupSerializer<kotlin.Array[]> |
BYTE_ARRAY_DELTA |
GroupSerializer<kotlin.Array[]> |
BYTE_ARRAY_DELTA2 |
Serializer<kotlin.Array[]> |
BYTE_ARRAY_NOSIZE
Serializes
byte[] directly into underlying store It does not store size, so it can not be used in Maps and other collections. |
GroupSerializer<java.lang.Character> |
CHAR
A predefined Serializer that handles non-null Character. If a
null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<kotlin.Array[]> |
CHAR_ARRAY
Serializes
char[] it adds header which contains size information |
GroupSerializer<java.lang.Class> |
CLASS |
GroupSerializer<java.util.Date> |
DATE |
GroupSerializer<java.lang.Double> |
DOUBLE
A predefined Serializer that handles non-null Double whereby Doubles are serialized to an 8 byte format. The Serializer also stores the Float's size, allowing it to be used as a GroupSerializer in BTreeMaps. This Serializer hashes Doubles using the original
Double#hashCode() method. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<kotlin.Array[]> |
DOUBLE_ARRAY
Serializes
double[] it adds header which contains size information |
GroupSerializer<A> |
ELSA |
GroupSerializer<java.lang.Float> |
FLOAT
A predefined Serializer that handles non-null Float whereby Floats are serialized to a 4 byte format. The Serializer also stores the Float's size, allowing it to be used as a GroupSerializer in BTreeMaps. This Serializer hashes Floats using the original
Float#hashCode() method. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<kotlin.Array[]> |
FLOAT_ARRAY |
GroupSerializer<java.lang.Object> |
ILLEGAL_ACCESS
A predefined Serializer that always throws an IllegalAccessError when invoked. This serializer can be used for testing and assertions.
|
GroupSerializer<java.lang.Integer> |
INTEGER
A predefined Serializer that handles non-null Integer whereby Integers are serialized to a 4 byte format. This Serializer hashes Integers using the original
Integer#hashCode() method. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<java.lang.Integer> |
INTEGER_DELTA
A predefined Serializer that handles non-null Integer whereby Integers are serialized to a compressed byte format and neighboring Integers are delta encoded in BTreeMaps. Neighbors with a small delta can be encoded using a single byte. Smaller positive values occupy less than 4 bytes. Large and negative values could occupy 4 or 5 bytes. This Serializer hashes Integers using the original
Integer#hashCode() method. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<java.lang.Integer> |
INTEGER_PACKED
A predefined Serializer that handles non-null Integer whereby Integers are serialized to a compressed byte format.The Serializer also stores the Longs's size, allowing it to be used as a GroupSerializer in BTreeMaps. Smaller positive values occupy less than 4 bytes. Large and negative values could occupy 4 or 5 bytes. This Serializer hashes Integers using the original
Integer#hashCode() method. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<kotlin.Array[]> |
INT_ARRAY
Serializes
int[] it adds header which contains size information |
GroupSerializer<A> |
JAVA
A predefined Serializer that handles non-null
Serializable Java objects whereby the standard Java serialization will be applied using java.io.ObjectInputStream and java.io.ObjectOutputStream methods. This Serializer hashes Objects using a specially tailored hash code method that, in turn, is using the objects own hashCode() If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<java.lang.Long> |
LONG
A predefined Serializer that handles non-null Long whereby Longs are serialized to an 8 byte format. The Serializer also stores the Longs's size, allowing it to be used as a GroupSerializer in BTreeMaps. This Serializer hashes Longs using the original
Long#hashCode() method. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<kotlin.Array[]> |
LONG_ARRAY
Serializes
long[] it adds header which contains size information |
GroupSerializer<java.lang.Long> |
LONG_DELTA
A predefined Serializer that handles non-null Long whereby Longs are serialized to a compressed byte format and neighboring Longs are delta encoded in BTreeMaps. Neighbors with a small delta can be encoded using a single byte. Smaller positive values occupy less than 8 bytes. Large and negative values could occupy 8 or 9 bytes. This Serializer hashes Longs using the original
Long#hashCode() method. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<java.lang.Long> |
LONG_PACKED
A predefined Serializer that handles non-null Long whereby Longs are serialized to a compressed byte format. The Serializer also stores the Longs's size, allowing it to be used as a GroupSerializer in BTreeMaps. Smaller positive values occupy less than 8 bytes. Large and negative values could occupy 8 or 9 bytes. This Serializer hashes Longs using the original
Long#hashCode() method. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<java.lang.Long> |
RECID
A predefined Serializer that handles non-null Long used as a recid whereby recids are serialized to an eight byte format including a checksum. If a
null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<kotlin.Array[]> |
RECID_ARRAY
A predefined Serializer that handles non-null arrays of longs used as a recids whereby recids are serialized to an eight byte format including a checksum. If a
null array is passed to the Serializer, a NullPointerException will be thrown. If an array that contains a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<java.lang.Short> |
SHORT
A predefined Serializer that handles non-null Short whereby Shorts are serialized to a 2 byte format. The Serializer also stores the Short's size, allowing it to be used as a GroupSerializer in BTreeMaps. This Serializer hashes Shorts using the original
Short#hashCode() method. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<kotlin.Array[]> |
SHORT_ARRAY |
GroupSerializer<java.lang.String> |
STRING
A predefined Serializer that handles non-null String whereby Strings are serialized to a UTF-8 encoded format. The Serializer also stores the String's size, allowing it to be used as a GroupSerializer in BTreeMaps. This Serializer hashes Strings using a specially tailored hash code method as opposed to the
Serializer#STRING_ORIGHASH Serializer. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<java.lang.String> |
STRING_ASCII
A predefined Serializer that handles non-null String whereby Strings are serialized to a ASCII encoded format (8 bit character) which is faster than using a UTF-8 format. The Serializer also stores the String's size, allowing it to be used as a GroupSerializer in BTreeMaps. This Serializer hashes Strings using a specially tailored hash code method as opposed to the
Serializer#STRING_ORIGHASH Serializer. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<java.lang.String> |
STRING_DELTA
A predefined Serializer that handles non-null String whereby Strings are serialized to a UTF-8 encoded format. The Serializer also stores the String's size, allowing it to be used as a GroupSerializer in BTreeMaps. Neighboring strings may be delta encoded for increased storage efficency. This Serializer hashes Strings using a specially tailored hash code method as opposed to the
Serializer#STRING_ORIGHASH Serializer. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<java.lang.String> |
STRING_DELTA2
A predefined Serializer that handles non-null String whereby Strings are serialized to a UTF-8 encoded format. The Serializer also stores the String's size, allowing it to be used as a GroupSerializer in BTreeMaps. Neighboring strings may be delta encoded for increased storage efficency. This Serializer hashes Strings using a specially tailored hash code method as opposed to the
Serializer#STRING_ORIGHASH Serializer. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<java.lang.String> |
STRING_INTERN
A predefined Serializer that handles non-null String whereby Strings are serialized to a UTF-8 encoded format. The Serializer also stores the String's size, allowing it to be used as a GroupSerializer in BTreeMaps. Neighboring strings may be delta encoded for increased storage efficency. Deserialized strings are automatically interned
String#intern() allowing a more heap space efficient storage for repeated strings. This Serializer hashes Strings using a specially tailored hash code method as opposed to the Serializer#STRING_ORIGHASH Serializer. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
Serializer<java.lang.String> |
STRING_NOSIZE
A predefined Serializer that handles non-null String whereby Strings are serialized to a UTF-8 encoded format. The Serializer does not store the String's size, thereby preventing it from being used as a GroupSerializer. This Serializer hashes Strings using the original hash code method as opposed to the
Serializer#STRING Serializer. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<java.lang.String> |
STRING_ORIGHASH
A predefined Serializer that handles non-null String whereby Strings are serialized to a UTF-8 encoded format. The Serializer also stores the String's size, allowing it to be used as a GroupSerializer in BTreeMaps. This Serializer hashes Strings using the original hash code method as opposed to the
Serializer#STRING Serializer. If a null value is passed to the Serializer, a NullPointerException will be thrown. |
GroupSerializer<java.util.UUID> |
UUID
Serializers java.util.UUID class
|
Modifier and Type | Method and Description |
---|---|
A |
clone()
Creates binary copy of given object. If the datatype is immutable the same instance might be returned
|
int |
compare() |
A |
deserialize()
Deserializes and returns the content of the given DataInput2.
|
A |
deserializeFromLong()
Deserializes and returns the content of the given long.
|
boolean |
equals()
Returns if the first and second arguments are equal to each other. Consequently, if both arguments are
null , true is returned and if exactly one argument is null , false is returned. |
int |
fixedSize()
Returns the fixed size of the serialized form in bytes or -1 if the size is not fixed (e.g. for Strings). Some optimizations can be applied to serializers with a fixed size.
|
int |
hashCode()
Returns a hash code of a given non-null argument. The output of the method is affected by the given seed, allowing protection against crafted hash attacks and to provide a better distribution of hashes.
|
boolean |
isTrusted()
Returns if this Serializer is trusted to always read the same number of bytes as it writes for any given object being serialized/de-serialized. MapDB has a relaxed record size boundary checking. It expects deserializers to read exactly as many bytes as were written during serialization. If a deserializer reads more bytes than it wrote, it might start reading others record data in store. Some serializers (Kryo) have problems with this. To prevent this, we can not read data directly from a store, but we must copy them into separate
byte[] buffers. Thus, zero-copy optimizations are disabled by default, but can be explicitly enabled here by letting this method return true . This flag indicates if this serializer was 'verified' to read as many bytes as it writes. It should also be much better tested etc. |
boolean |
needsAvailableSizeHint()
TODO: Document this method
|
void |
serialize()
Serializes the content of the given value into the given DataOutput2.
|
GroupSerializer<java.lang.Character> CHAR
A predefined Serializer that handles non-null Character.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.String> STRING_ORIGHASH
A predefined Serializer that handles non-null String whereby Strings are serialized to a UTF-8 encoded format. The Serializer also stores the String's size, allowing it to be used as a GroupSerializer in BTreeMaps.
This Serializer hashes Strings using the original hash code method as opposed to the Serializer#STRING
Serializer.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.String> STRING
A predefined Serializer that handles non-null String whereby Strings are serialized to a UTF-8 encoded format. The Serializer also stores the String's size, allowing it to be used as a GroupSerializer in BTreeMaps.
This Serializer hashes Strings using a specially tailored hash code method as opposed to the Serializer#STRING_ORIGHASH
Serializer.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.String> STRING_DELTA
A predefined Serializer that handles non-null String whereby Strings are serialized to a UTF-8 encoded format. The Serializer also stores the String's size, allowing it to be used as a GroupSerializer in BTreeMaps. Neighboring strings may be delta encoded for increased storage efficency.
This Serializer hashes Strings using a specially tailored hash code method as opposed to the Serializer#STRING_ORIGHASH
Serializer.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.String> STRING_DELTA2
A predefined Serializer that handles non-null String whereby Strings are serialized to a UTF-8 encoded format. The Serializer also stores the String's size, allowing it to be used as a GroupSerializer in BTreeMaps. Neighboring strings may be delta encoded for increased storage efficency.
This Serializer hashes Strings using a specially tailored hash code method as opposed to the Serializer#STRING_ORIGHASH
Serializer.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.String> STRING_INTERN
A predefined Serializer that handles non-null String whereby Strings are serialized to a UTF-8 encoded format. The Serializer also stores the String's size, allowing it to be used as a GroupSerializer in BTreeMaps. Neighboring strings may be delta encoded for increased storage efficency.
Deserialized strings are automatically interned String#intern()
allowing a more heap space efficient storage for repeated strings.
This Serializer hashes Strings using a specially tailored hash code method as opposed to the Serializer#STRING_ORIGHASH
Serializer.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.String> STRING_ASCII
A predefined Serializer that handles non-null String whereby Strings are serialized to a ASCII encoded format (8 bit character) which is faster than using a UTF-8 format. The Serializer also stores the String's size, allowing it to be used as a GroupSerializer in BTreeMaps.
This Serializer hashes Strings using a specially tailored hash code method as opposed to the Serializer#STRING_ORIGHASH
Serializer.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
Serializer<java.lang.String> STRING_NOSIZE
A predefined Serializer that handles non-null String whereby Strings are serialized to a UTF-8 encoded format. The Serializer does not store the String's size, thereby preventing it from being used as a GroupSerializer.
This Serializer hashes Strings using the original hash code method as opposed to the Serializer#STRING
Serializer.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.Long> LONG
A predefined Serializer that handles non-null Long whereby Longs are serialized to an 8 byte format. The Serializer also stores the Longs's size, allowing it to be used as a GroupSerializer in BTreeMaps.
This Serializer hashes Longs using the original Long#hashCode()
method.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.Long> LONG_PACKED
A predefined Serializer that handles non-null Long whereby Longs are serialized to a compressed byte format. The Serializer also stores the Longs's size, allowing it to be used as a GroupSerializer in BTreeMaps.
Smaller positive values occupy less than 8 bytes. Large and negative values could occupy 8 or 9 bytes.
This Serializer hashes Longs using the original Long#hashCode()
method.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.Long> LONG_DELTA
A predefined Serializer that handles non-null Long whereby Longs are serialized to a compressed byte format and neighboring Longs are delta encoded in BTreeMaps. Neighbors with a small delta can be encoded using a single byte.
Smaller positive values occupy less than 8 bytes. Large and negative values could occupy 8 or 9 bytes.
This Serializer hashes Longs using the original Long#hashCode()
method.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.Integer> INTEGER
A predefined Serializer that handles non-null Integer whereby Integers are serialized to a 4 byte format.
This Serializer hashes Integers using the original Integer#hashCode()
method.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.Integer> INTEGER_PACKED
A predefined Serializer that handles non-null Integer whereby Integers are serialized to a compressed byte format.The Serializer also stores the Longs's size, allowing it to be used as a GroupSerializer in BTreeMaps.
Smaller positive values occupy less than 4 bytes. Large and negative values could occupy 4 or 5 bytes.
This Serializer hashes Integers using the original Integer#hashCode()
method.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.Integer> INTEGER_DELTA
A predefined Serializer that handles non-null Integer whereby Integers are serialized to a compressed byte format and neighboring Integers are delta encoded in BTreeMaps. Neighbors with a small delta can be encoded using a single byte.
Smaller positive values occupy less than 4 bytes. Large and negative values could occupy 4 or 5 bytes.
This Serializer hashes Integers using the original Integer#hashCode()
method.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.Boolean> BOOLEAN
A predefined Serializer that handles non-null Boolean whereby Booleans are serialized to a one byte format.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.Long> RECID
A predefined Serializer that handles non-null Long used as a recid whereby recids are serialized to an eight byte format including a checksum.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<kotlin.Array[]> RECID_ARRAY
A predefined Serializer that handles non-null arrays of longs used as a recids whereby recids are serialized to an eight byte format including a checksum.
If a null
array is passed to the Serializer, a NullPointerException will be thrown.
If an array that contains a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.Object> ILLEGAL_ACCESS
A predefined Serializer that always throws an IllegalAccessError when invoked.
This serializer can be used for testing and assertions.
GroupSerializer<kotlin.Array[]> BYTE_ARRAY
Serializes byte[]
it adds header which contains size information
GroupSerializer<kotlin.Array[]> BYTE_ARRAY_DELTA
GroupSerializer<kotlin.Array[]> BYTE_ARRAY_DELTA2
Serializer<kotlin.Array[]> BYTE_ARRAY_NOSIZE
Serializes byte[]
directly into underlying store It does not store size, so it can not be used in Maps and other collections.
GroupSerializer<kotlin.Array[]> CHAR_ARRAY
Serializes char[]
it adds header which contains size information
GroupSerializer<kotlin.Array[]> INT_ARRAY
Serializes int[]
it adds header which contains size information
GroupSerializer<kotlin.Array[]> LONG_ARRAY
Serializes long[]
it adds header which contains size information
GroupSerializer<kotlin.Array[]> DOUBLE_ARRAY
Serializes double[]
it adds header which contains size information
GroupSerializer<A> JAVA
A predefined Serializer that handles non-null Serializable
Java objects whereby the standard Java serialization will be applied using java.io.ObjectInputStream and java.io.ObjectOutputStream methods.
This Serializer hashes Objects using a specially tailored hash code method that, in turn, is using the objects own hashCode()
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<A> ELSA
GroupSerializer<java.util.UUID> UUID
Serializers java.util.UUID class
GroupSerializer<java.lang.Byte> BYTE
A predefined Serializer that handles non-null Byte whereby Bytes are serialized to a one byte format.
This Serializer hashes Bytes using the original Byte#hashCode()
method.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.Float> FLOAT
A predefined Serializer that handles non-null Float whereby Floats are serialized to a 4 byte format. The Serializer also stores the Float's size, allowing it to be used as a GroupSerializer in BTreeMaps.
This Serializer hashes Floats using the original Float#hashCode()
method.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.Double> DOUBLE
A predefined Serializer that handles non-null Double whereby Doubles are serialized to an 8 byte format. The Serializer also stores the Float's size, allowing it to be used as a GroupSerializer in BTreeMaps.
This Serializer hashes Doubles using the original Double#hashCode()
method.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<java.lang.Short> SHORT
A predefined Serializer that handles non-null Short whereby Shorts are serialized to a 2 byte format. The Serializer also stores the Short's size, allowing it to be used as a GroupSerializer in BTreeMaps.
This Serializer hashes Shorts using the original Short#hashCode()
method.
If a null
value is passed to the Serializer, a NullPointerException will be thrown.
GroupSerializer<kotlin.Array[]> SHORT_ARRAY
GroupSerializer<kotlin.Array[]> FLOAT_ARRAY
GroupSerializer<java.math.BigInteger> BIG_INTEGER
GroupSerializer<java.math.BigDecimal> BIG_DECIMAL
GroupSerializer<java.lang.Class> CLASS
GroupSerializer<java.util.Date> DATE
void serialize()
Serializes the content of the given value into the given DataOutput2.
A deserialize()
Deserializes and returns the content of the given DataInput2.
int fixedSize()
Returns the fixed size of the serialized form in bytes or -1 if the size is not fixed (e.g. for Strings).
Some optimizations can be applied to serializers with a fixed size.
boolean isTrusted()
Returns if this Serializer is trusted to always read the same number of bytes as it writes for any given object being serialized/de-serialized.
MapDB has a relaxed record size boundary checking. It expects deserializers to read exactly as many bytes as were written during serialization. If a deserializer reads more bytes than it wrote, it might start reading others record data in store.
Some serializers (Kryo) have problems with this. To prevent this, we can not read data directly from a store, but we must copy them into separate byte[]
buffers. Thus, zero-copy optimizations are disabled by default, but can be explicitly enabled here by letting this method return true
.
This flag indicates if this serializer was 'verified' to read as many bytes as it writes. It should also be much better tested etc.
int compare()
boolean equals()
Returns if the first and second arguments are equal to each other. Consequently, if both arguments are null
, true
is returned and if exactly one argument is null
, false
is returned.
int hashCode()
Returns a hash code of a given non-null argument. The output of the method is affected by the given seed, allowing protection against crafted hash attacks and to provide a better distribution of hashes.
boolean needsAvailableSizeHint()
TODO: Document this method
A deserializeFromLong()
Deserializes and returns the content of the given long.
A clone()
Creates binary copy of given object. If the datatype is immutable the same instance might be returned