interface Serializer<A : Any> : Comparator<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.
- the type of object that the Serializer handles. Author
Jan Kotek
BIG_DECIMAL |
static val BIG_DECIMAL: GroupSerializer<BigDecimal> |
BIG_INTEGER |
static val BIG_INTEGER: GroupSerializer<BigInteger> |
BOOLEAN |
static val BOOLEAN: GroupSerializer<Boolean> A predefined Serializer that handles non-null Boolean whereby Booleans are serialized to a one byte format. If a |
BYTE |
static val BYTE: GroupSerializer<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 If a |
BYTE_ARRAY |
static val BYTE_ARRAY: GroupSerializer<ByteArray> Serializes |
BYTE_ARRAY_DELTA |
static val BYTE_ARRAY_DELTA: GroupSerializer<ByteArray> |
BYTE_ARRAY_DELTA2 |
static val BYTE_ARRAY_DELTA2: GroupSerializer<ByteArray> |
BYTE_ARRAY_NOSIZE |
static val BYTE_ARRAY_NOSIZE: Serializer<ByteArray> Serializes |
CHAR |
static val CHAR: GroupSerializer<Char> A predefined Serializer that handles non-null Character. If a |
CHAR_ARRAY |
static val CHAR_ARRAY: GroupSerializer<CharArray> Serializes |
CLASS |
static val CLASS: GroupSerializer<Class<*>> |
DATE |
static val DATE: GroupSerializer<Date> |
DOUBLE |
static val DOUBLE: GroupSerializer<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 If a |
DOUBLE_ARRAY |
static val DOUBLE_ARRAY: GroupSerializer<DoubleArray> Serializes |
ELSA |
static val ELSA: GroupSerializer<Any> |
FLOAT |
static val FLOAT: GroupSerializer<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 If a |
FLOAT_ARRAY |
static val FLOAT_ARRAY: GroupSerializer<FloatArray> |
ILLEGAL_ACCESS |
static val ILLEGAL_ACCESS: GroupSerializer<Any> A predefined Serializer that always throws an IllegalAccessError when invoked. This serializer can be used for testing and assertions. |
INTEGER |
static val INTEGER: GroupSerializer<Int> A predefined Serializer that handles non-null Integer whereby Integers are serialized to a 4 byte format. This Serializer hashes Integers using the original If a |
INTEGER_DELTA |
static val INTEGER_DELTA: GroupSerializer<Int> 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 If a |
INTEGER_PACKED |
static val INTEGER_PACKED: GroupSerializer<Int> 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 If a |
INT_ARRAY |
static val INT_ARRAY: GroupSerializer<IntArray> Serializes |
JAVA |
static val JAVA: GroupSerializer<Any> A predefined Serializer that handles non-null This Serializer hashes Objects using a specially tailored hash code method that, in turn, is using the objects own If a |
LONG |
static val LONG: GroupSerializer<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 If a |
LONG_ARRAY |
static val LONG_ARRAY: GroupSerializer<LongArray> Serializes |
LONG_DELTA |
static val LONG_DELTA: GroupSerializer<Long> 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 If a |
LONG_PACKED |
static val LONG_PACKED: GroupSerializer<Long> 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 If a |
RECID |
static val RECID: GroupSerializer<Long> 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 |
RECID_ARRAY |
static val RECID_ARRAY: GroupSerializer<LongArray> 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 If an array that contains a |
SHORT |
static val SHORT: GroupSerializer<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 If a |
SHORT_ARRAY |
static val SHORT_ARRAY: GroupSerializer<ShortArray> |
STRING |
static val STRING: GroupSerializer<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 If a |
STRING_ASCII |
static val STRING_ASCII: GroupSerializer<String> 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 If a |
STRING_DELTA |
static val STRING_DELTA: GroupSerializer<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. 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 If a |
STRING_DELTA2 |
static val STRING_DELTA2: GroupSerializer<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. 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 If a |
STRING_INTERN |
static val STRING_INTERN: GroupSerializer<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. Neighboring strings may be delta encoded for increased storage efficency. Deserialized strings are automatically interned This Serializer hashes Strings using a specially tailored hash code method as opposed to the If a |
STRING_NOSIZE |
static val STRING_NOSIZE: Serializer<String> A predefined Serializer that handles non-null String whereby Strings are serialized to a UTF-8 encoded format. The Serializer does This Serializer hashes Strings using the original hash code method as opposed to the If a |
STRING_ORIGHASH |
static val STRING_ORIGHASH: GroupSerializer<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 the original hash code method as opposed to the If a |
UUID |
static val UUID: GroupSerializer<UUID> Serializers java.util.UUID class |
clone |
open fun clone(value: A): A Creates binary copy of given object. If the datatype is immutable the same instance might be returned |
compare |
open fun compare(first: A, second: A): Int |
deserialize |
abstract fun deserialize(input: DataInput2, available: Int): A Deserializes and returns the content of the given DataInput2. |
deserializeFromLong |
open fun deserializeFromLong(input: Long, available: Int): A Deserializes and returns the content of the given long. |
equals |
open fun equals(first: A, second: A): Boolean Returns if the first and second arguments are equal to each other. Consequently, if both arguments are |
fixedSize |
open fun fixedSize(): Int 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. |
hashCode |
open fun hashCode(o: A, seed: Int): Int 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. |
isTrusted |
open fun isTrusted(): Boolean 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 This flag indicates if this serializer was 'verified' to read as many bytes as it writes. It should also be much better tested etc. |
needsAvailableSizeHint |
open fun needsAvailableSizeHint(): Boolean TODO: Document this method |
serialize |
abstract fun serialize(out: DataOutput2, value: A): Unit Serializes the content of the given value into the given DataOutput2. |
GroupSerializer |
interface GroupSerializer<A : Any> : Serializer<A> Created by jan on 2/29/16. |
NodeSerializer |
open class NodeSerializer : Serializer<Node> |
SERIALIZER |
object SERIALIZER : Serializer<Node> |
SerializerByteArrayNoSize |
open class SerializerByteArrayNoSize : Serializer<ByteArray> Created by jan on 2/28/16. |
SerializerStringNoSize |
open class SerializerStringNoSize : Serializer<String> Created by jan on 2/28/16. |