public class AvlTreeMarshaller<E> extends java.lang.Object implements Marshaller<AvlTree<E>>
| Modifier and Type | Field and Description |
|---|---|
private java.util.Comparator<E> |
comparator
key Comparator for the AvlTree
|
private static byte[] |
EMPTY_TREE
used for serialized form of an empty AvlTree
|
private Marshaller<E> |
keyMarshaller
marshaller to be used for marshalling the keys
|
| Constructor and Description |
|---|
AvlTreeMarshaller(java.util.Comparator<E> comparator)
Creates a new instance of AvlTreeMarshaller with the default key
Marshaller which uses Java Serialization.
|
AvlTreeMarshaller(java.util.Comparator<E> comparator,
Marshaller<E> keyMarshaller)
Creates a new instance of AvlTreeMarshaller with a custom key
Marshaller.
|
| Modifier and Type | Method and Description |
|---|---|
AvlTree<E> |
deserialize(byte[] data)
Creates an AVLTree from given bytes of data.
|
LinkedAvlNode<E> |
readTree(java.io.DataInputStream in,
LinkedAvlNode<E> node,
LinkedAvlNode[] nodes)
Reads the data from given InputStream and creates the LinkedAvlNodes to
form the tree node = [size] [data-length] [data] [index] [child-marker]
[node] [child-marker] [node].
|
byte[] |
serialize(AvlTree<E> tree)
Marshals the given tree to bytes
|
private void |
writeTree(LinkedAvlNode<E> node,
java.io.DataOutputStream out)
writes the content of the AVLTree to an output stream.
|
private static final byte[] EMPTY_TREE
private Marshaller<E> keyMarshaller
private java.util.Comparator<E> comparator
public AvlTreeMarshaller(java.util.Comparator<E> comparator, Marshaller<E> keyMarshaller)
comparator - Comparator to be used for key comparisionkeyMarshaller - marshaller for keyspublic AvlTreeMarshaller(java.util.Comparator<E> comparator)
comparator - Comparator to be used for key comparisionpublic byte[] serialize(AvlTree<E> tree)
serialize in interface Marshaller<AvlTree<E>>tree - the tree to be marshalledprivate void writeTree(LinkedAvlNode<E> node, java.io.DataOutputStream out) throws java.io.IOException
node - the node to be marshalled to bytesout - OutputStreamjava.io.IOException - on write failures of serialized tree to streampublic AvlTree<E> deserialize(byte[] data) throws java.io.IOException
deserialize in interface Marshaller<AvlTree<E>>data - byte array to be converted into AVLTreejava.io.IOExceptionpublic LinkedAvlNode<E> readTree(java.io.DataInputStream in, LinkedAvlNode<E> node, LinkedAvlNode[] nodes) throws java.io.IOException
in - the input stream to deserialize fromnode - the node to deserializejava.io.IOException - on failures to deserialize or read from the stream