/** * Parses a MatFileHeader from its desciption and the raw bytes of the version and endian indicator. * * @param description - descriptive test * @param bversion - 2-byte array containing the version (raw from a MAT-File) * @param endianIndicator - 2-byte array containing the endian indicator (raw from a MAT-File( * @return */ public static MatFileHeader parseFrom(String description, byte[] bversion, byte[] endianIndicator) { int version; ByteOrder byteOrder = parseByteOrder(endianIndicator); if (byteOrder == ByteOrder.BIG_ENDIAN) { version = bversion[0] & 0xff | bversion[1] << 8; } else if (byteOrder == ByteOrder.LITTLE_ENDIAN) { version = bversion[1] & 0xff | bversion[0] << 8; } else { throw new IllegalArgumentException("Unknown byteOrder " + byteOrder); } return new MatFileHeader(description, version, byteOrder); }
/** * Parses a MatFileHeader from its desciption and the raw bytes of the version and endian indicator. * * @param description - descriptive test * @param bversion - 2-byte array containing the version (raw from a MAT-File) * @param endianIndicator - 2-byte array containing the endian indicator (raw from a MAT-File( * @return */ public static MatFileHeader parseFrom(String description, byte[] bversion, byte[] endianIndicator) { int version; ByteOrder byteOrder = parseByteOrder(endianIndicator); if (byteOrder == ByteOrder.BIG_ENDIAN) { version = bversion[0] & 0xff | bversion[1] << 8; } else if (byteOrder == ByteOrder.LITTLE_ENDIAN) { version = bversion[1] & 0xff | bversion[0] << 8; } else { throw new IllegalArgumentException("Unknown byteOrder " + byteOrder); } return new MatFileHeader(description, version, byteOrder); }