Class DataSetSerialiser
- java.lang.Object
-
- de.gsi.dataset.serializer.spi.iobuffer.DataSetSerialiser
-
public class DataSetSerialiser extends java.lang.ObjectClass to efficiently serialise and de-serialise DataSet objects into binary byte arrays. The performance can be tuned through:- using floats (ie. memory-IO vs network-IO bound serialisation), or
- via
setDataLablesSerialised(boolean)(default: false) to control whether data labels and styles shall be processed - via
setMetaDataSerialised(boolean)(default: true) to control whether meta data shall be processed
- Author:
- rstein
-
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description protected static java.util.Optional<FieldHeader>checkFieldCompatibility(IoBuffer buffer, java.util.List<FieldHeader> fieldHeaderList, java.lang.String fieldName, DataType... requireDataTypes)static booleanisDataLablesSerialised()static booleanisMetaDataSerialised()protected static voidparseDataLabels(IoBuffer readBuffer, DataSetBuilder builder, java.util.List<FieldHeader> fieldHeaderList)protected static voidparseHeaders(IoBuffer readBuffer, DataSetBuilder builder, java.util.List<FieldHeader> fieldHeaderList)protected static voidparseMetaData(IoBuffer readBuffer, DataSetBuilder builder, java.util.List<FieldHeader> fieldHeaderList)protected static voidparseNumericData(IoBuffer readBuffer, DataSetBuilder builder, java.util.List<FieldHeader> fieldHeaderList)static DataSetreadDataSetFromByteArray(IoBuffer readBuffer)Read a Dataset from a byte array containing comma separated values.
The data format is a custom extension of csv with an additional #-commented Metadata Header and a $-commented column header.static voidsetDataLablesSerialised(boolean state)static voidsetMetaDataSerialised(boolean state)protected static voidwriteDataLabelsToStream(IoBuffer buffer, DataSet dataSet)static voidwriteDataSetToByteArray(DataSet dataSet, IoBuffer buffer, boolean asFloat)Write data set into byte buffer.protected static voidwriteHeaderDataToStream(IoBuffer buffer, DataSet dataSet)protected static voidwriteMetaDataToStream(IoBuffer buffer, DataSet dataSet)protected static voidwriteNumericBinaryDataToBufferDouble(IoBuffer buffer, DataSet dataSet)protected static voidwriteNumericBinaryDataToBufferFloat(IoBuffer buffer, DataSet dataSet)
-
-
-
Method Detail
-
checkFieldCompatibility
protected static java.util.Optional<FieldHeader> checkFieldCompatibility(IoBuffer buffer, java.util.List<FieldHeader> fieldHeaderList, java.lang.String fieldName, DataType... requireDataTypes)
-
isDataLablesSerialised
public static boolean isDataLablesSerialised()
-
isMetaDataSerialised
public static boolean isMetaDataSerialised()
-
parseDataLabels
protected static void parseDataLabels(IoBuffer readBuffer, DataSetBuilder builder, java.util.List<FieldHeader> fieldHeaderList)
-
parseHeaders
protected static void parseHeaders(IoBuffer readBuffer, DataSetBuilder builder, java.util.List<FieldHeader> fieldHeaderList)
-
parseMetaData
protected static void parseMetaData(IoBuffer readBuffer, DataSetBuilder builder, java.util.List<FieldHeader> fieldHeaderList)
-
parseNumericData
protected static void parseNumericData(IoBuffer readBuffer, DataSetBuilder builder, java.util.List<FieldHeader> fieldHeaderList)
-
readDataSetFromByteArray
public static DataSet readDataSetFromByteArray(IoBuffer readBuffer)
Read a Dataset from a byte array containing comma separated values.
The data format is a custom extension of csv with an additional #-commented Metadata Header and a $-commented column header. Expects the following columns in this order to be present: index, x, y, eyn, eyp.- Parameters:
readBuffer- IoBuffer (encapsulates byte array).- Returns:
- DataSet with the data and metadata read from the file
-
setDataLablesSerialised
public static void setDataLablesSerialised(boolean state)
-
setMetaDataSerialised
public static void setMetaDataSerialised(boolean state)
-
writeDataLabelsToStream
protected static void writeDataLabelsToStream(IoBuffer buffer, DataSet dataSet)
-
writeDataSetToByteArray
public static void writeDataSetToByteArray(DataSet dataSet, IoBuffer buffer, boolean asFloat)
Write data set into byte buffer.- Parameters:
dataSet- The DataSet to exportbuffer- byte output buffer (N.B. keep caching this object)asFloat-true: encode data as binary floats (smaller size, performance), orfalseas double (better precision)
-
writeHeaderDataToStream
protected static void writeHeaderDataToStream(IoBuffer buffer, DataSet dataSet)
-
writeMetaDataToStream
protected static void writeMetaDataToStream(IoBuffer buffer, DataSet dataSet)
-
writeNumericBinaryDataToBufferFloat
protected static void writeNumericBinaryDataToBufferFloat(IoBuffer buffer, DataSet dataSet)
- Parameters:
buffer- IoBuffer to write binary data intodataSet- to be exported
-
-