Class SubRecord

    • Constructor Detail

      • SubRecord

        protected SubRecord()
      • SubRecord

        protected SubRecord​(SubRecord other)
    • Method Detail

      • setMaxRecordLength

        public static void setMaxRecordLength​(int length)
        Parameters:
        length - the max record length allowed for SubRecord
      • getMaxRecordLength

        public static int getMaxRecordLength()
        Returns:
        the max record length allowed for SubRecord
      • createSubRecord

        public static SubRecord createSubRecord​(LittleEndianInput in,
                                                int cmoOt)
        read a sub-record from the supplied stream
        Parameters:
        in - the stream to read from
        cmoOt - the objectType field of the containing CommonObjectDataSubRecord, we need it to propagate to next sub-records as it defines what data follows
        Returns:
        the created sub-record
      • getDataSize

        protected abstract int getDataSize()
        Returns:
        the size of the data for this record (which is always 4 bytes less than the total record size). Note however, that ushort encoded after the record sid is usually but not always the data size.
      • serialize

        public byte[] serialize()
      • isTerminating

        public boolean isTerminating()
        Whether this record terminates the sub-record stream. There are two cases when this method must be overridden and return true - EndSubRecord (sid = 0x00) - LbsDataSubRecord (sid = 0x12)
        Returns:
        whether this record is the last in the sub-record stream
      • copy

        public abstract SubRecord copy()
        Specified by:
        copy in interface Duplicatable
        Returns:
        a deep copy of the implementing class / instance