org.ehcache.impl.serialization
Class CompactJavaSerializer<T>

java.lang.Object
  extended by org.ehcache.impl.serialization.CompactJavaSerializer<T>
All Implemented Interfaces:
java.io.Closeable, Serializer<T>

public class CompactJavaSerializer<T>
extends java.lang.Object
implements Serializer<T>, java.io.Closeable

A trivially compressed Java serialization based serializer.

Class descriptors in the resultant bytes are encoded as integers. Mappings between the integer representation and the ObjectStreamClass, and the Class and the integer representation are stored in a single on-heap map.


Nested Class Summary
protected static class CompactJavaSerializer.SerializableDataKey
           
 
Constructor Summary
  CompactJavaSerializer(java.lang.ClassLoader loader)
           
protected CompactJavaSerializer(java.lang.ClassLoader loader, java.util.Map<java.lang.Integer,java.io.ObjectStreamClass> mappings)
           
 
Method Summary
 void close()
           
protected static java.io.ObjectStreamClass disconnect(java.io.ObjectStreamClass desc)
           
 boolean equals(T object, java.nio.ByteBuffer binary)
          Checks if the given instance and serial form are representations of the same instance.
 java.io.ObjectInputStream getObjectInputStream(java.io.InputStream input)
           
 java.io.ObjectOutputStream getObjectOutputStream(java.io.OutputStream out)
           
protected  int getOrAddMapping(java.io.ObjectStreamClass desc)
           
protected  java.util.Map<java.lang.Integer,java.io.ObjectStreamClass> getSerializationMappings()
           
 T read(java.nio.ByteBuffer binary)
          Reconstructs an instance from the given serial form.
 java.nio.ByteBuffer serialize(T object)
          Transforms the given instance into its serial form.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CompactJavaSerializer

public CompactJavaSerializer(java.lang.ClassLoader loader)

CompactJavaSerializer

protected CompactJavaSerializer(java.lang.ClassLoader loader,
                                java.util.Map<java.lang.Integer,java.io.ObjectStreamClass> mappings)
Method Detail

getSerializationMappings

protected java.util.Map<java.lang.Integer,java.io.ObjectStreamClass> getSerializationMappings()

serialize

public java.nio.ByteBuffer serialize(T object)
                              throws SerializerException
Description copied from interface: Serializer
Transforms the given instance into its serial form.

Specified by:
serialize in interface Serializer<T>
Parameters:
object - the instance to serialize
Returns:
the binary representation of the serial form
Throws:
SerializerException - if serialization fails

read

public T read(java.nio.ByteBuffer binary)
       throws java.lang.ClassNotFoundException,
              SerializerException
Description copied from interface: Serializer
Reconstructs an instance from the given serial form.

Specified by:
read in interface Serializer<T>
Parameters:
binary - the binary representation of the serial form
Returns:
the de-serialized instance
Throws:
java.lang.ClassNotFoundException - if the type to de-serialize to cannot be found
SerializerException - if reading the byte buffer fails

getObjectOutputStream

public java.io.ObjectOutputStream getObjectOutputStream(java.io.OutputStream out)
                                                 throws java.io.IOException
Throws:
java.io.IOException

getObjectInputStream

public java.io.ObjectInputStream getObjectInputStream(java.io.InputStream input)
                                               throws java.io.IOException
Throws:
java.io.IOException

equals

public boolean equals(T object,
                      java.nio.ByteBuffer binary)
               throws java.lang.ClassNotFoundException,
                      SerializerException
Description copied from interface: Serializer
Checks if the given instance and serial form are representations of the same instance.

Specified by:
equals in interface Serializer<T>
Parameters:
object - the instance to check
binary - the serial form to check
Returns:
true if both parameters represent the same instance, false otherwise
Throws:
java.lang.ClassNotFoundException - if the type to de-serialize to cannot be found
SerializerException - if reading the byte buffer fails

getOrAddMapping

protected int getOrAddMapping(java.io.ObjectStreamClass desc)
                       throws java.io.IOException
Throws:
java.io.IOException

close

public void close()
Specified by:
close in interface java.io.Closeable

disconnect

protected static java.io.ObjectStreamClass disconnect(java.io.ObjectStreamClass desc)