code: private SubheaderIndexes chooseSubheaderClass(long subheaderSignature, int compression, int type) {
          SubheaderIndexes subheaderIndex = SUBHEADER_SIGNATURE_TO_INDEX.get(subheaderSignature);
          if (sasFileProperties.isCompressed() && subheaderIndex == null && (compression == COMPRESSED_SUBHEADER_ID
                  || compression == 0) && type == COMPRESSED_SUBHEADER_TYPE) {
              subheaderIndex = SubheaderIndexes.DATA_SUBHEADER_INDEX;
          }
          return subheaderIndex;
      }
docs: The function to determine the subheader type by its signature, {@link SubheaderPointer#compression},
  and {@link SubheaderPointer#type}.
  
  @param subheaderSignature the subheader signature to search for in the
  {@link SasFileParser#SUBHEADER_SIGNATURE_TO_INDEX} mapping
  @param compression        the type of subheader compression ({@link SubheaderPointer#compression})
  @param type               the subheader type ({@link SubheaderPointer#type})
  @return an element from the  {@link SubheaderIndexes} enumeration that defines the type of
  the current subheader