org.helidb.lang.serializer
Class StringSerializer

java.lang.Object
  extended by org.helidb.lang.serializer.StringSerializer
All Implemented Interfaces:
Serializer<String>
Direct Known Subclasses:
StringNullSerializer

public class StringSerializer
extends Object
implements Serializer<String>

A Serializer for String values. Every String value serialized by this object is represented as a byte array. The modified UTF-8 format described in the DataInput is used to serialize the String.

Strings must not be so long that they cannot fit into a byte array of length 65535. See the DataInput interface.

This serializer does not handle null values.

The singleton instance INSTANCE may be used instead of creating a new object of this class.

Since:
1.0
Author:
Karl Gustafsson
See Also:
StringNullSerializer, ConstantSizeStringSerializer, String
In_jar:
helidb-core

Field Summary
static StringSerializer INSTANCE
          The singleton instance.
 
Constructor Summary
StringSerializer()
           
 
Method Summary
 int getSerializedSize()
          If the serialized data produced by this serializer always is of the same size, return that size (in number of bytes).
 String interpret(byte[] barr)
          Interpret the data in the byte array to an object of the type handled by the Serializer implementation.
 String interpret(byte[] barr, int offset, int length)
          Interpret the data in the byte array to an object of the type handled by the Serializer implementation.
 boolean isNullValuesPermitted()
          Does this serializer permit null values?
 String read(InputStream is, int dataSize)
          Read a value from the InputStream.
 String read(RandomAccess ra, int dataSize)
          Read a value from the RandomAccess' current position.
 byte[] serialize(String s)
          Serialize the supplied object into a new byte array.
 int serialize(String s, byte[] barr, int offset)
          Serialize the supplied object into the byte array.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

INSTANCE

public static final StringSerializer INSTANCE
The singleton instance. May be used instead of instantiating this class.

Constructor Detail

StringSerializer

public StringSerializer()
Method Detail

interpret

public String interpret(byte[] barr,
                        int offset,
                        int length)
Description copied from interface: Serializer
Interpret the data in the byte array to an object of the type handled by the Serializer implementation.

Specified by:
interpret in interface Serializer<String>
Parameters:
barr - The byte array containing the data.
offset - The start position of the data.
length - The length of the data.
Returns:
The interpreted object.
See Also:
Serializer.interpret(byte[])

interpret

public String interpret(byte[] barr)
Description copied from interface: Serializer
Interpret the data in the byte array to an object of the type handled by the Serializer implementation.

Specified by:
interpret in interface Serializer<String>
Parameters:
barr - The byte array containing the data.
Returns:
The interpreted object.
See Also:
Serializer.interpret(byte[], int, int)

serialize

public int serialize(String s,
                     byte[] barr,
                     int offset)
Description copied from interface: Serializer
Serialize the supplied object into the byte array.

Specified by:
serialize in interface Serializer<String>
Parameters:
s - The object to serialize.
barr - The byte array to serialize it to.
offset - The start position to write data at in the byte array.
Returns:
The number of bytes written to the array.

serialize

public byte[] serialize(String s)
Description copied from interface: Serializer
Serialize the supplied object into a new byte array.

Specified by:
serialize in interface Serializer<String>
Parameters:
s - The object to serialize.
Returns:
The object serialized into a byte array.

getSerializedSize

public int getSerializedSize()
Description copied from interface: Serializer
If the serialized data produced by this serializer always is of the same size, return that size (in number of bytes). Otherwise -1 is returned.

Specified by:
getSerializedSize in interface Serializer<String>
Returns:
-1, always.

isNullValuesPermitted

public boolean isNullValuesPermitted()
Description copied from interface: Serializer
Does this serializer permit null values?

Specified by:
isNullValuesPermitted in interface Serializer<String>
Returns:
false, always.

read

public String read(RandomAccess ra,
                   int dataSize)
Description copied from interface: Serializer
Read a value from the RandomAccess' current position. The position in the RandomAccess is incremented by size bytes.

Specified by:
read in interface Serializer<String>
Parameters:
ra - The RandomAccess to read from.
dataSize - The size of the value.
Returns:
The value.

read

public String read(InputStream is,
                   int dataSize)
Description copied from interface: Serializer
Read a value from the InputStream.

Specified by:
read in interface Serializer<String>
Parameters:
is - The InputStream to read from.
dataSize - The size of the value.
Returns:
The value.