in src/main/java/com/epam/parso/impl/SasFileParser.java [1439:1475]
public void processSubheader(long subheaderOffset, long subheaderLength) throws IOException {
int intOrLongLength = sasFileProperties.isU64() ? BYTES_IN_LONG : BYTES_IN_INT;
Long[] offset = {subheaderOffset + ROW_LENGTH_OFFSET_MULTIPLIER * intOrLongLength,
subheaderOffset + ROW_COUNT_OFFSET_MULTIPLIER * intOrLongLength,
subheaderOffset + ROW_COUNT_ON_MIX_PAGE_OFFSET_MULTIPLIER * intOrLongLength,
subheaderOffset + FILE_FORMAT_OFFSET_OFFSET + 82 * intOrLongLength,
subheaderOffset + FILE_FORMAT_LENGTH_OFFSET + 82 * intOrLongLength,
subheaderOffset + DELETED_ROW_COUNT_OFFSET_MULTIPLIER * intOrLongLength,
subheaderOffset + COMPRESSION_METHOD_OFFSET + 82 * intOrLongLength,
subheaderOffset + COMPRESSION_METHOD_LENGTH_OFFSET + 82 * intOrLongLength,
};
Integer[] length = {intOrLongLength, intOrLongLength, intOrLongLength,
FILE_FORMAT_OFFSET_LENGTH, FILE_FORMAT_LENGTH_LENGTH,
intOrLongLength,
COMPRESSION_METHOD_OFFSET_LENGTH, COMPRESSION_METHOD_LENGTH_LENGTH};
List<byte[]> vars = getBytesFromFile(offset, length);
if (sasFileProperties.getRowLength() == 0) {
sasFileProperties.setRowLength(bytesToLong(vars.get(0)));
}
if (sasFileProperties.getRowCount() == 0) {
sasFileProperties.setRowCount(bytesToLong(vars.get(1)));
}
if (sasFileProperties.getMixPageRowCount() == 0) {
sasFileProperties.setMixPageRowCount(bytesToLong(vars.get(2)));
}
fileLabelOffset = bytesToShort(vars.get(3));
fileLabelLength = bytesToShort(vars.get(4));
if (sasFileProperties.getDeletedRowCount() == 0) {
sasFileProperties.setDeletedRowCount(bytesToLong(vars.get(5)));
}
compressionMethodOffset = bytesToShort(vars.get(6));
compressionMethodLength = bytesToShort(vars.get(7));
}