Class DataSetSerialiser


  • public class DataSetSerialiser
    extends DataSetUtilsHelper
    Class to efficiently serialise and de-serialise DataSet objects into binary byte arrays. The performance can be tuned through:
    Author:
    rstein
    • Constructor Detail

      • DataSetSerialiser

        protected DataSetSerialiser()
    • 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()
      • 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 export
        buffer - byte output buffer (N.B. keep caching this object)
        asFloat - true: encode data as binary floats (smaller size, performance), or false as double (better precision)
      • writeHeaderDataToStream

        protected static void writeHeaderDataToStream​(IoBuffer buffer,
                                                      DataSet dataSet)
      • writeMetaDataToStream

        protected static void writeMetaDataToStream​(IoBuffer buffer,
                                                    DataSet dataSet)
      • writeNumericBinaryDataToBuffer

        protected static void writeNumericBinaryDataToBuffer​(IoBuffer buffer,
                                                             DataSet dataSet,
                                                             boolean asFloat)
        Parameters:
        buffer - IoBuffer to write binary data into
        dataSet - to be exported
        asFloat - true use 32-bit floats (less memory, faster transfer) instead of 64-bit doubles (DataSet default, higher precision)