@SuppressWarnings("SameParameterValue") private static Container readContainer(final int major, final InputStream inputStream, final int fromSlice, int howManySlices) throws IOException { final Container container = readContainerHeader(major, inputStream); if (container.isEOF()) { return container; } container.header = CompressionHeader.read(major, inputStream); howManySlices = Math.min(container.landmarks.length, howManySlices); if (fromSlice > 0) //noinspection ResultOfMethodCallIgnored inputStream.skip(container.landmarks[fromSlice]); final List<Slice> slices = new ArrayList<Slice>(); for (int sliceCount = fromSlice; sliceCount < howManySlices - fromSlice; sliceCount++) { final Slice slice = new Slice(); SliceIO.read(major, slice, inputStream); slice.index = sliceCount; slices.add(slice); } container.slices = slices.toArray(new Slice[slices.size()]); calculateSliceOffsetsAndSizes(container); log.debug("READ CONTAINER: " + container.toString()); return container; }
@SuppressWarnings("SameParameterValue") private static Container readContainer(final int major, final InputStream inputStream, final int fromSlice, int howManySlices) { final Container container = readContainerHeader(major, inputStream); if (container.isEOF()) { return container; } container.header = CompressionHeader.read(major, inputStream); howManySlices = Math.min(container.landmarks.length, howManySlices); try { if (fromSlice > 0) //noinspection ResultOfMethodCallIgnored inputStream.skip(container.landmarks[fromSlice]); } catch (final IOException e) { throw new RuntimeIOException(e); } final List<Slice> slices = new ArrayList<Slice>(); for (int sliceCount = fromSlice; sliceCount < howManySlices - fromSlice; sliceCount++) { final Slice slice = new Slice(); SliceIO.read(major, slice, inputStream); slice.index = sliceCount; slices.add(slice); } container.slices = slices.toArray(new Slice[slices.size()]); calculateSliceOffsetsAndSizes(container); log.debug("READ CONTAINER: " + container.toString()); return container; }