de.bsvrz.sys.funclib.dataSerializer
Class SerializerImplementationA

java.lang.Object
  extended by de.bsvrz.sys.funclib.dataSerializer.SerializerImplementationA
All Implemented Interfaces:
Serializer

final class SerializerImplementationA
extends Object
implements Serializer

Implementierung eines Serialisierers zum serialisieren von Datensätzen. Die Klasse ist nicht öffentlich zugänglich. Ein Objekt dieser Klasse kann mit der Methode SerializingFactory.createSerializer(java.io.OutputStream) erzeugt werden.

Author:
Kappich Systemberatung

Field Summary
private  OutputStream _outputStream
           
private  int _version
           
 
Constructor Summary
SerializerImplementationA(int version, OutputStream outputStream)
          Erzeugt ein neues Serialisierungsobjekt mit der gewünschten Version.
 
Method Summary
 OutputStream getOutputStream()
          Bestimmt den für die Serialisierung zu verwendenden Ausgabe-Stream.
 int getVersion()
          Bestimmt die Version des konkreten Serialisierers.
 void setOutputStream(OutputStream outputStream)
          Setzt den zu verwendenden Ausgabe-Stream.
 String toString()
          Liefert eine textuelle Beschreibung dieses Objekts für Debug-Zwecke.
 void writeBoolean(boolean value)
          Serialisiert einen boolean-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.
 void writeByte(int value)
          Serialisiert einen byte-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.
 void writeBytes(byte[] bytes)
          Schreibt ein Byte-Array auf den Ausgabe-Stream.
 void writeBytes(byte[] bytes, int offset, int length)
          Schreibt ein Folge von Bytes aus einem Byte-Array auf den Ausgabe-Stream.
 void writeData(Data data)
          Serialisiert einen Datensatz in einen Bytestrom und schreibt diesen auf den angegebenen Ausgabe-Stream.
 void writeDouble(double value)
          Serialisiert einen double-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.
 void writeFloat(float value)
          Serialisiert einen float-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.
 void writeInt(int value)
          Serialisiert einen int-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.
 void writeLong(long value)
          Serialisiert einen long-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.
 void writeObjectReference(SystemObject object)
          Serialisiert die id eines Systemobjekts in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.
 void writeShort(int value)
          Serialisiert einen short-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.
 void writeString(String value)
          Serialisiert einen String-Wert mit einer MaximalLänge von 65535 in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.
 void writeString(String value, int maxLength)
          Serialisiert einen String-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_version

private final int _version

_outputStream

private OutputStream _outputStream
Constructor Detail

SerializerImplementationA

SerializerImplementationA(int version,
                          OutputStream outputStream)
                    throws RuntimeException
Erzeugt ein neues Serialisierungsobjekt mit der gewünschten Version.

Parameters:
version - Gewünschte Version der Deserialisierung.
outputStream - Ausgabe-Stream, der beim serialisieren zu verwenden ist.
Throws:
RuntimeException - Wenn die gewünschte Version nicht durch diese Klasse implementiert werden kann.
Method Detail

getOutputStream

public OutputStream getOutputStream()
Bestimmt den für die Serialisierung zu verwendenden Ausgabe-Stream.

Specified by:
getOutputStream in interface Serializer
Returns:
Für die Serialisierung zu verwendenden Ausgabe-Stream.

setOutputStream

public void setOutputStream(OutputStream outputStream)
Setzt den zu verwendenden Ausgabe-Stream.

Specified by:
setOutputStream in interface Serializer
Parameters:
outputStream - Zu verwendender Ausgabe-Stream

getVersion

public int getVersion()
Bestimmt die Version des konkreten Serialisierers.

Specified by:
getVersion in interface Serializer
Returns:
Version des Serialisierers.

writeData

public void writeData(Data data)
               throws IOException
Serialisiert einen Datensatz in einen Bytestrom und schreibt diesen auf den angegebenen Ausgabe-Stream. AttributListen und Arrays werden durch Serialisierung der enthalten Attribute serialisiert. Bei Arrays variabler Länge wird die Länge vorweg serialisiert, und zwar je nach maximaler Anzahl der Elemente in 1, 2 oder 4 Bytes als vorzeichenloser Wert.

Specified by:
writeData in interface Serializer
Parameters:
data - Der zu serialisierende Datensatz.
Throws:
IOException - Wenn ein I/O Fehler bei Schreiben auf den Ausgabe-Stream auftritt.

writeObjectReference

public void writeObjectReference(SystemObject object)
                          throws IOException
Serialisiert die id eines Systemobjekts in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.

Specified by:
writeObjectReference in interface Serializer
Parameters:
object - Das Systemobjekt dessen id serialisiert werden soll.
Throws:
IOException - Wenn ein I/O Fehler bei Schreiben auf den Ausgabe-Stream auftritt.

writeLong

public void writeLong(long value)
               throws IOException
Serialisiert einen long-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.

Specified by:
writeLong in interface Serializer
Parameters:
value - Der zu serialisierende Wert.
Throws:
IOException - Wenn ein I/O Fehler bei Schreiben auf den Ausgabe-Stream auftritt.

writeInt

public void writeInt(int value)
              throws IOException
Serialisiert einen int-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.

Specified by:
writeInt in interface Serializer
Parameters:
value - Der zu serialisierende Wert.
Throws:
IOException - Wenn ein I/O Fehler bei Schreiben auf den Ausgabe-Stream auftritt.

writeShort

public void writeShort(int value)
                throws IOException
Serialisiert einen short-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.

Specified by:
writeShort in interface Serializer
Parameters:
value - Der zu serialisierende Wert.
Throws:
IOException - Wenn ein I/O Fehler bei Schreiben auf den Ausgabe-Stream auftritt.

writeByte

public void writeByte(int value)
               throws IOException
Serialisiert einen byte-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.

Specified by:
writeByte in interface Serializer
Parameters:
value - Der zu serialisierende Wert.
Throws:
IOException - Wenn ein I/O Fehler bei Schreiben auf den Ausgabe-Stream auftritt.

writeBoolean

public void writeBoolean(boolean value)
                  throws IOException
Serialisiert einen boolean-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.

Specified by:
writeBoolean in interface Serializer
Parameters:
value - Der zu serialisierende Wert.
Throws:
IOException - Wenn ein I/O Fehler beim Schreiben auf den Ausgabe-Stream auftritt.

writeDouble

public void writeDouble(double value)
                 throws IOException
Serialisiert einen double-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream. Die Werte werden entsprechend dem IEEE 754 floating-point "double format" serialisiert.

Specified by:
writeDouble in interface Serializer
Parameters:
value - Der zu serialisierende Wert.
Throws:
IOException - Wenn ein I/O Fehler bei Schreiben auf den Ausgabe-Stream auftritt.

writeFloat

public void writeFloat(float value)
                throws IOException
Serialisiert einen float-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream. Die Werte werden entsprechend dem IEEE 754 floating-point "single format" serialisiert.

Specified by:
writeFloat in interface Serializer
Parameters:
value - Der zu serialisierende Wert.
Throws:
IOException - Wenn ein I/O Fehler bei Schreiben auf den Ausgabe-Stream auftritt.

writeString

public void writeString(String value)
                 throws IOException
Serialisiert einen String-Wert mit einer MaximalLänge von 65535 in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream.

Specified by:
writeString in interface Serializer
Parameters:
value - Der zu serialisierende Wert.
Throws:
IOException - Wenn ein I/O Fehler bei Schreiben auf den Ausgabe-Stream auftritt.

writeString

public void writeString(String value,
                        int maxLength)
                 throws IOException
Serialisiert einen String-Wert in einen Bytestrom und schreibt diesen auf den Ausgabe-Stream. Strings werden in ISO-8859-1 kodiert und vorweg wird die Länge des Strings serialisiert und zwar je nach maximaler Stringlänge in 1, 2, oder 4 Bytes als vorzeichenloser Wert.

Specified by:
writeString in interface Serializer
Parameters:
value - Der zu serialisierende Wert.
maxLength - Maximale Länge des zu serialisierenden Strings oder 0 wenn keine Begrenzung vorgegeben werden kann.
Throws:
IOException - Wenn ein I/O Fehler bei Schreiben auf den Ausgabe-Stream auftritt.
IllegalArgumentException - Wenn die Länge des Strings größer als die angegebene Maximallänge ist.

writeBytes

public void writeBytes(byte[] bytes)
                throws IOException
Schreibt ein Byte-Array auf den Ausgabe-Stream. Es ist zu beachten, dass die Größe des Arrays nicht implizit serialisiert wird und beim Deserialisieren angegeben werden muss.

Specified by:
writeBytes in interface Serializer
Parameters:
bytes - Zu schreibendes Byte-Array
Throws:
IOException - Wenn ein I/O Fehler bei Schreiben auf den Ausgabe-Stream auftritt.

writeBytes

public void writeBytes(byte[] bytes,
                       int offset,
                       int length)
                throws IOException
Schreibt ein Folge von Bytes aus einem Byte-Array auf den Ausgabe-Stream. Es ist zu beachten, dass die Anzahl der Bytes nicht implizit serialisiert wird und beim Deserialisieren passend angegeben werden muss.

Specified by:
writeBytes in interface Serializer
Parameters:
bytes - Byte-Array mit den zu schreibenden Bytes
offset - Start-Offset des ersten zu schreibenden Bytes im Array
length - Anzahl der zu schreibenden Bytes
Throws:
IOException - Wenn ein I/O Fehler bei Schreiben auf den Ausgabe-Stream auftritt.

toString

public String toString()
Liefert eine textuelle Beschreibung dieses Objekts für Debug-Zwecke.

Overrides:
toString in class Object
Returns:
Beschreibung dieses Objekts.