@Test public void variousFormatReaderInflatorFactoryTest() throws IOException { final String inputFile = "compressed.bam"; final int[] inflateCalls = {0}; //Note: using an array is a HACK to fool the compiler class MyInflater extends Inflater { MyInflater(boolean gzipCompatible) { super(gzipCompatible); } @Override public int inflate(byte[] b, int off, int len) throws java.util.zip.DataFormatException { inflateCalls[0]++; return super.inflate(b, off, len); } } final InflaterFactory myInflaterFactory = new InflaterFactory() { @Override public Inflater makeInflater(final boolean gzipCompatible) { return new MyInflater(gzipCompatible); } }; final File input = new File(TEST_DATA_DIR, inputFile); try (final SamReader reader = SamReaderFactory.makeDefault().inflaterFactory(myInflaterFactory).open(input)) { for (final SAMRecord ignored : reader) { } } Assert.assertNotEquals(inflateCalls[0], 0, "Not using Inflater from InflateFactory on file : " + inputFile); }
private SamReader createSamReader(SeekableStream in, SeekableStream inIndex, ValidationStringency stringency, boolean useIntelInflater) { SamReaderFactory readerFactory = SamReaderFactory.makeDefault() .setOption(SamReaderFactory.Option.CACHE_FILE_BASED_INDEXES, true) .setOption(SamReaderFactory.Option.EAGERLY_DECODE, false) .setUseAsyncIo(false); if (stringency != null) { readerFactory.validationStringency(stringency); } SamInputResource resource = SamInputResource.of(in); if (inIndex != null) { resource.index(inIndex); } if (useIntelInflater) { readerFactory.inflaterFactory(IntelGKLAccessor.newInflatorFactor()); } return readerFactory.open(resource); }
private SamReader createSamReader(SeekableStream in, SeekableStream inIndex, ValidationStringency stringency, boolean useIntelInflater) { SamReaderFactory readerFactory = SamReaderFactory.makeDefault() .setOption(SamReaderFactory.Option.CACHE_FILE_BASED_INDEXES, true) .setOption(SamReaderFactory.Option.EAGERLY_DECODE, false) .setUseAsyncIo(false); if (stringency != null) { readerFactory.validationStringency(stringency); } SamInputResource resource = SamInputResource.of(in); if (inIndex != null) { resource.index(inIndex); } if (useIntelInflater) { readerFactory.inflaterFactory(IntelGKLAccessor.newInflatorFactor()); } return readerFactory.open(resource); }