/** * Iterate over the records and for each tag found come up with an encoding. * Tag encodings are registered via the builder. * * @param records * CRAM records holding the tags to be encoded * @param builder * compression header builder to register encodings */ private void buildTagEncodings(final List<CramCompressionRecord> records, final CompressionHeaderBuilder builder) { final Set<Integer> tagIdSet = new HashSet<>(); for (final CramCompressionRecord record : records) { if (record.tags == null || record.tags.length == 0) { continue; } for (final ReadTag tag : record.tags) { tagIdSet.add(tag.keyType3BytesAsInt); } } for (final int tagId : tagIdSet) { if (bestEncodings.containsKey(tagId)) { builder.addTagEncoding(tagId, bestEncodings.get(tagId)); } else { final EncodingDetails e = buildEncodingForTag(records, tagId); builder.addTagEncoding(tagId, e); bestEncodings.put(tagId, e); } } }
/** * Iterate over the records and for each tag found come up with an encoding. * Tag encodings are registered via the builder. * * @param records * CRAM records holding the tags to be encoded * @param builder * compression header builder to register encodings */ private void buildTagEncodings(final List<CramCompressionRecord> records, final CompressionHeaderBuilder builder) { final Set<Integer> tagIdSet = new HashSet<>(); for (final CramCompressionRecord record : records) { if (record.tags == null || record.tags.length == 0) { continue; } for (final ReadTag tag : record.tags) { tagIdSet.add(tag.keyType3BytesAsInt); } } for (final int tagId : tagIdSet) { if (bestEncodings.containsKey(tagId)) { builder.addTagEncoding(tagId, bestEncodings.get(tagId)); } else { final EncodingDetails e = buildEncodingForTag(records, tagId); builder.addTagEncoding(tagId, e); bestEncodings.put(tagId, e); } } }