jdbm.helper
Class Serialization

java.lang.Object
  extended by jdbm.helper.Serialization

public final class Serialization
extends java.lang.Object

Serialization util. It reduces serialized data size for most common java types.

Common pattern is one byte header which identifies data type, then size is written (if required) and data.

On unknown types normal java serialization is used

Header byte values bellow 180 are reserved by author for future use. If you want to customize this class, use values over 180, to be compatible with future updates.

Author:
Jan Kotek

Field Summary
static int ARRAY_BYTE_255
           
static int ARRAY_BYTE_INT
           
static int ARRAY_INT_B_255
           
static int ARRAY_INT_B_INT
           
static int ARRAY_INT_I
           
static int ARRAY_INT_PACKED
           
static int ARRAY_INT_S
           
static int ARRAY_LONG_B
           
static int ARRAY_LONG_I
           
static int ARRAY_LONG_L
           
static int ARRAY_LONG_PACKED
           
static int ARRAY_LONG_S
           
static int ARRAY_OBJECT
           
static int ARRAY_OBJECT_255
           
static int ARRAY_OBJECT_PACKED_LONG
           
static int ARRAYLIST
           
static int ARRAYLIST_255
           
static int ARRAYLIST_PACKED_LONG
           
static int BIGDECIMAL
           
static int BIGDECIMAL_255
           
static int BIGINTEGER
           
static int BIGINTEGER_255
           
static int BLOCKIO
           
static int BOOLEAN_FALSE
           
static int BOOLEAN_TRUE
           
static int BPAGE_LEAF
           
static int BPAGE_NONLEAF
           
static int BYTE_0
           
static int BYTE_1
           
static int BYTE_FULL
           
static int BYTE_MINUS_1
           
static int CHAR
           
static int CLASS
           
static boolean DEBUG
          print statistics to STDOUT
static boolean DEBUGSTORE
          if set to true, debug informations will be saved to store to make it more robust
static int DOUBLE_0
           
static int DOUBLE_1
           
static int DOUBLE_255
           
static int DOUBLE_FULL
           
static int DOUBLE_MINUS_1
           
static int DOUBLE_SHORT
           
static byte END_OF_NORMAL_SERIALIZATION
           
static int FLOAT_0
           
static int FLOAT_1
           
static int FLOAT_255
           
static int FLOAT_FULL
           
static int FLOAT_MINUS_1
           
static int FLOAT_SHORT
           
static int HASHMAP
           
static int HASHMAP_255
           
static int HASHSET
           
static int HASHSET_255
           
static int HASHTABLE
           
static int HASHTABLE_255
           
static int HTREE_BUCKET
           
static int HTREE_DIRECTORY
           
static int INTEGER_0
           
static int INTEGER_1
           
static int INTEGER_2
           
static int INTEGER_255
           
static int INTEGER_3
           
static int INTEGER_4
           
static int INTEGER_5
           
static int INTEGER_6
           
static int INTEGER_7
           
static int INTEGER_8
           
static int INTEGER_MINUS_1
           
static int INTEGER_MINUS_MAX
           
static int INTEGER_PACK
           
static int INTEGER_PACK_NEG
           
static int JAVA_SERIALIZATION
           
static int LINKEDHASHMAP
           
static int LINKEDHASHMAP_255
           
static int LINKEDHASHSET
           
static int LINKEDHASHSET_255
           
static int LINKEDLIST
           
static int LINKEDLIST_255
           
static int LONG_0
           
static int LONG_1
           
static int LONG_2
           
static int LONG_255
           
static int LONG_3
           
static int LONG_4
           
static int LONG_5
           
static int LONG_6
           
static int LONG_7
           
static int LONG_8
           
static int LONG_MINUS_1
           
static int LONG_MINUS_MAX
           
static int LONG_PACK
           
static int LONG_PACK_NEG
           
static int NORMAL
           
static int NULL
           
static int PROPERTIES
           
static int PROPERTIES_255
           
static int SHORT_0
           
static int SHORT_1
           
static int SHORT_255
           
static int SHORT_FULL
           
static int SHORT_MINUS_1
           
static int STOREREFERENCE
           
static int STRING
           
static int STRING_255
           
static int STRING_EMPTY
           
static int TREEMAP
           
static int TREEMAP_255
           
static int TREESET
           
static int TREESET_255
           
static int VECTOR
           
static int VECTOR_255
           
 
Constructor Summary
Serialization()
           
 
Method Summary
static java.lang.Object deserialize(byte[] buf)
          Deserialize an object from a byte array
static java.lang.Object readObject(java.io.DataInputStream is)
           
static byte[] serialize(java.lang.Object obj)
          Serialize the object into a byte array.
static void writeObject(java.io.DataOutputStream out, java.lang.Object obj)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

END_OF_NORMAL_SERIALIZATION

public static final byte END_OF_NORMAL_SERIALIZATION
See Also:
Constant Field Values

DEBUG

public static final boolean DEBUG
print statistics to STDOUT

See Also:
Constant Field Values

DEBUGSTORE

public static final boolean DEBUGSTORE
if set to true, debug informations will be saved to store to make it more robust

See Also:
Constant Field Values

NULL

public static final int NULL
See Also:
Constant Field Values

NORMAL

public static final int NORMAL
See Also:
Constant Field Values

BOOLEAN_TRUE

public static final int BOOLEAN_TRUE
See Also:
Constant Field Values

BOOLEAN_FALSE

public static final int BOOLEAN_FALSE
See Also:
Constant Field Values

INTEGER_MINUS_1

public static final int INTEGER_MINUS_1
See Also:
Constant Field Values

INTEGER_0

public static final int INTEGER_0
See Also:
Constant Field Values

INTEGER_1

public static final int INTEGER_1
See Also:
Constant Field Values

INTEGER_2

public static final int INTEGER_2
See Also:
Constant Field Values

INTEGER_3

public static final int INTEGER_3
See Also:
Constant Field Values

INTEGER_4

public static final int INTEGER_4
See Also:
Constant Field Values

INTEGER_5

public static final int INTEGER_5
See Also:
Constant Field Values

INTEGER_6

public static final int INTEGER_6
See Also:
Constant Field Values

INTEGER_7

public static final int INTEGER_7
See Also:
Constant Field Values

INTEGER_8

public static final int INTEGER_8
See Also:
Constant Field Values

INTEGER_255

public static final int INTEGER_255
See Also:
Constant Field Values

INTEGER_PACK_NEG

public static final int INTEGER_PACK_NEG
See Also:
Constant Field Values

INTEGER_PACK

public static final int INTEGER_PACK
See Also:
Constant Field Values

LONG_MINUS_1

public static final int LONG_MINUS_1
See Also:
Constant Field Values

LONG_0

public static final int LONG_0
See Also:
Constant Field Values

LONG_1

public static final int LONG_1
See Also:
Constant Field Values

LONG_2

public static final int LONG_2
See Also:
Constant Field Values

LONG_3

public static final int LONG_3
See Also:
Constant Field Values

LONG_4

public static final int LONG_4
See Also:
Constant Field Values

LONG_5

public static final int LONG_5
See Also:
Constant Field Values

LONG_6

public static final int LONG_6
See Also:
Constant Field Values

LONG_7

public static final int LONG_7
See Also:
Constant Field Values

LONG_8

public static final int LONG_8
See Also:
Constant Field Values

LONG_PACK_NEG

public static final int LONG_PACK_NEG
See Also:
Constant Field Values

LONG_PACK

public static final int LONG_PACK
See Also:
Constant Field Values

LONG_255

public static final int LONG_255
See Also:
Constant Field Values

LONG_MINUS_MAX

public static final int LONG_MINUS_MAX
See Also:
Constant Field Values

SHORT_MINUS_1

public static final int SHORT_MINUS_1
See Also:
Constant Field Values

SHORT_0

public static final int SHORT_0
See Also:
Constant Field Values

SHORT_1

public static final int SHORT_1
See Also:
Constant Field Values

SHORT_255

public static final int SHORT_255
See Also:
Constant Field Values

SHORT_FULL

public static final int SHORT_FULL
See Also:
Constant Field Values

BYTE_MINUS_1

public static final int BYTE_MINUS_1
See Also:
Constant Field Values

BYTE_0

public static final int BYTE_0
See Also:
Constant Field Values

BYTE_1

public static final int BYTE_1
See Also:
Constant Field Values

BYTE_FULL

public static final int BYTE_FULL
See Also:
Constant Field Values

CHAR

public static final int CHAR
See Also:
Constant Field Values

FLOAT_MINUS_1

public static final int FLOAT_MINUS_1
See Also:
Constant Field Values

FLOAT_0

public static final int FLOAT_0
See Also:
Constant Field Values

FLOAT_1

public static final int FLOAT_1
See Also:
Constant Field Values

FLOAT_255

public static final int FLOAT_255
See Also:
Constant Field Values

FLOAT_SHORT

public static final int FLOAT_SHORT
See Also:
Constant Field Values

FLOAT_FULL

public static final int FLOAT_FULL
See Also:
Constant Field Values

DOUBLE_MINUS_1

public static final int DOUBLE_MINUS_1
See Also:
Constant Field Values

DOUBLE_0

public static final int DOUBLE_0
See Also:
Constant Field Values

DOUBLE_1

public static final int DOUBLE_1
See Also:
Constant Field Values

DOUBLE_255

public static final int DOUBLE_255
See Also:
Constant Field Values

DOUBLE_SHORT

public static final int DOUBLE_SHORT
See Also:
Constant Field Values

DOUBLE_FULL

public static final int DOUBLE_FULL
See Also:
Constant Field Values

BIGDECIMAL_255

public static final int BIGDECIMAL_255
See Also:
Constant Field Values

BIGDECIMAL

public static final int BIGDECIMAL
See Also:
Constant Field Values

BIGINTEGER_255

public static final int BIGINTEGER_255
See Also:
Constant Field Values

BIGINTEGER

public static final int BIGINTEGER
See Also:
Constant Field Values

INTEGER_MINUS_MAX

public static final int INTEGER_MINUS_MAX
See Also:
Constant Field Values

ARRAY_INT_B_255

public static final int ARRAY_INT_B_255
See Also:
Constant Field Values

ARRAY_INT_B_INT

public static final int ARRAY_INT_B_INT
See Also:
Constant Field Values

ARRAY_INT_S

public static final int ARRAY_INT_S
See Also:
Constant Field Values

ARRAY_INT_I

public static final int ARRAY_INT_I
See Also:
Constant Field Values

ARRAY_INT_PACKED

public static final int ARRAY_INT_PACKED
See Also:
Constant Field Values

ARRAY_LONG_B

public static final int ARRAY_LONG_B
See Also:
Constant Field Values

ARRAY_LONG_S

public static final int ARRAY_LONG_S
See Also:
Constant Field Values

ARRAY_LONG_I

public static final int ARRAY_LONG_I
See Also:
Constant Field Values

ARRAY_LONG_L

public static final int ARRAY_LONG_L
See Also:
Constant Field Values

ARRAY_LONG_PACKED

public static final int ARRAY_LONG_PACKED
See Also:
Constant Field Values

ARRAY_BYTE_255

public static final int ARRAY_BYTE_255
See Also:
Constant Field Values

ARRAY_BYTE_INT

public static final int ARRAY_BYTE_INT
See Also:
Constant Field Values

ARRAY_OBJECT_255

public static final int ARRAY_OBJECT_255
See Also:
Constant Field Values

ARRAY_OBJECT

public static final int ARRAY_OBJECT
See Also:
Constant Field Values

ARRAY_OBJECT_PACKED_LONG

public static final int ARRAY_OBJECT_PACKED_LONG
See Also:
Constant Field Values

ARRAYLIST_PACKED_LONG

public static final int ARRAYLIST_PACKED_LONG
See Also:
Constant Field Values

STRING_EMPTY

public static final int STRING_EMPTY
See Also:
Constant Field Values

STRING_255

public static final int STRING_255
See Also:
Constant Field Values

STRING

public static final int STRING
See Also:
Constant Field Values

ARRAYLIST_255

public static final int ARRAYLIST_255
See Also:
Constant Field Values

ARRAYLIST

public static final int ARRAYLIST
See Also:
Constant Field Values

TREEMAP_255

public static final int TREEMAP_255
See Also:
Constant Field Values

TREEMAP

public static final int TREEMAP
See Also:
Constant Field Values

HASHMAP_255

public static final int HASHMAP_255
See Also:
Constant Field Values

HASHMAP

public static final int HASHMAP
See Also:
Constant Field Values

LINKEDHASHMAP_255

public static final int LINKEDHASHMAP_255
See Also:
Constant Field Values

LINKEDHASHMAP

public static final int LINKEDHASHMAP
See Also:
Constant Field Values

TREESET_255

public static final int TREESET_255
See Also:
Constant Field Values

TREESET

public static final int TREESET
See Also:
Constant Field Values

HASHSET_255

public static final int HASHSET_255
See Also:
Constant Field Values

HASHSET

public static final int HASHSET
See Also:
Constant Field Values

LINKEDHASHSET_255

public static final int LINKEDHASHSET_255
See Also:
Constant Field Values

LINKEDHASHSET

public static final int LINKEDHASHSET
See Also:
Constant Field Values

LINKEDLIST_255

public static final int LINKEDLIST_255
See Also:
Constant Field Values

LINKEDLIST

public static final int LINKEDLIST
See Also:
Constant Field Values

VECTOR_255

public static final int VECTOR_255
See Also:
Constant Field Values

VECTOR

public static final int VECTOR
See Also:
Constant Field Values

HASHTABLE_255

public static final int HASHTABLE_255
See Also:
Constant Field Values

HASHTABLE

public static final int HASHTABLE
See Also:
Constant Field Values

PROPERTIES_255

public static final int PROPERTIES_255
See Also:
Constant Field Values

PROPERTIES

public static final int PROPERTIES
See Also:
Constant Field Values

CLASS

public static final int CLASS
See Also:
Constant Field Values

STOREREFERENCE

public static final int STOREREFERENCE
See Also:
Constant Field Values

BLOCKIO

public static final int BLOCKIO
See Also:
Constant Field Values

BPAGE_LEAF

public static final int BPAGE_LEAF
See Also:
Constant Field Values

BPAGE_NONLEAF

public static final int BPAGE_NONLEAF
See Also:
Constant Field Values

HTREE_BUCKET

public static final int HTREE_BUCKET
See Also:
Constant Field Values

HTREE_DIRECTORY

public static final int HTREE_DIRECTORY
See Also:
Constant Field Values

JAVA_SERIALIZATION

public static final int JAVA_SERIALIZATION
See Also:
Constant Field Values
Constructor Detail

Serialization

public Serialization()
Method Detail

serialize

public static byte[] serialize(java.lang.Object obj)
                        throws java.io.IOException
Serialize the object into a byte array.

Throws:
java.io.IOException

writeObject

public static void writeObject(java.io.DataOutputStream out,
                               java.lang.Object obj)
                        throws java.io.IOException
Throws:
java.io.IOException

deserialize

public static java.lang.Object deserialize(byte[] buf)
                                    throws java.lang.ClassNotFoundException,
                                           java.io.IOException
Deserialize an object from a byte array

Throws:
java.io.IOException
java.lang.ClassNotFoundException

readObject

public static java.lang.Object readObject(java.io.DataInputStream is)
                                   throws java.io.IOException,
                                          java.lang.ClassNotFoundException
Throws:
java.io.IOException
java.lang.ClassNotFoundException


Cees de Groot (C) 2000. All rights reserved http://jdbm.sourceforge.net