Package org.apache.commons.io.input
Class ChecksumInputStream.Builder
java.lang.Object
org.apache.commons.io.build.AbstractSupplier<ChecksumInputStream,ChecksumInputStream.Builder>
 
org.apache.commons.io.build.AbstractOriginSupplier<ChecksumInputStream,ChecksumInputStream.Builder>
 
org.apache.commons.io.build.AbstractStreamBuilder<ChecksumInputStream,ChecksumInputStream.Builder>
 
org.apache.commons.io.input.ProxyInputStream.AbstractBuilder<ChecksumInputStream,ChecksumInputStream.Builder>
 
org.apache.commons.io.input.ChecksumInputStream.Builder
- All Implemented Interfaces:
- IOSupplier<ChecksumInputStream>
- Enclosing class:
- ChecksumInputStream
public static class ChecksumInputStream.Builder
extends ProxyInputStream.AbstractBuilder<ChecksumInputStream,ChecksumInputStream.Builder> 
Builds a new 
ChecksumInputStream.
 
 There is no default Checksum; you MUST provide one. This avoids any issue with a default Checksum being proven deficient or insecure
 in the future.
 
Using NIO
 ChecksumInputStream s = ChecksumInputStream.builder()
   .setPath(Paths.get("MyFile.xml"))
   .setChecksum(new CRC32())
   .setExpectedChecksumValue(12345)
   .get();
 Using IO
 ChecksumInputStream s = ChecksumInputStream.builder()
   .setFile(new File("MyFile.xml"))
   .setChecksum(new CRC32())
   .setExpectedChecksumValue(12345)
   .get();
 Validating only part of an InputStream
The following validates the first 100 bytes of the given input.
 ChecksumInputStream s = ChecksumInputStream.builder()
   .setPath(Paths.get("MyFile.xml"))
   .setChecksum(new CRC32())
   .setExpectedChecksumValue(12345)
   .setCountThreshold(100)
   .get();
 To validate input after the beginning of a stream, build an instance with an InputStream starting where you want to validate.
 InputStream inputStream = ...;
 inputStream.read(...);
 inputStream.skip(...);
 ChecksumInputStream s = ChecksumInputStream.builder()
   .setInputStream(inputStream)
   .setChecksum(new CRC32())
   .setExpectedChecksumValue(12345)
   .setCountThreshold(100)
   .get();
 - See Also:
- 
Constructor SummaryConstructors
- 
Method SummaryModifier and TypeMethodDescriptionget()Builds a newChecksumInputStream.setChecksum(Checksum checksum) Sets the Checksum.setCountThreshold(long countThreshold) Sets the count threshold to limit how much input is consumed to update theChecksumbefore the input stream validates its value.setExpectedChecksumValue(long expectedChecksumValue) The expectedChecksumvalue once the stream is exhausted or the count threshold is reached.Methods inherited from class org.apache.commons.io.input.ProxyInputStream.AbstractBuildergetAfterRead, setAfterReadMethods inherited from class org.apache.commons.io.build.AbstractStreamBuildergetBufferSize, getBufferSizeDefault, getCharSequence, getCharset, getCharsetDefault, getFile, getInputStream, getOpenOptions, getOutputStream, getPath, getRandomAccessFile, getReader, getWriter, setBufferSize, setBufferSize, setBufferSizeChecker, setBufferSizeDefault, setBufferSizeMax, setCharset, setCharset, setCharsetDefault, setOpenOptionsMethods inherited from class org.apache.commons.io.build.AbstractOriginSuppliercheckOrigin, getOrigin, hasOrigin, newByteArrayOrigin, newCharSequenceOrigin, newFileOrigin, newFileOrigin, newInputStreamOrigin, newOutputStreamOrigin, newPathOrigin, newPathOrigin, newRandomAccessFileOrigin, newRandomAccessFileOrigin, newReaderOrigin, newURIOrigin, newWriterOrigin, setByteArray, setCharSequence, setFile, setFile, setInputStream, setOrigin, setOutputStream, setPath, setPath, setRandomAccessFile, setRandomAccessFile, setReader, setURI, setWriterMethods inherited from class org.apache.commons.io.build.AbstractSupplierasThisMethods inherited from class java.lang.Objectclone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.commons.io.function.IOSupplierasSupplier, getUnchecked
- 
Constructor Details- 
Builderpublic Builder()Constructs a new builder ofChecksumInputStream.
 
- 
- 
Method Details- 
getBuilds a newChecksumInputStream.You must set an aspect that supports AbstractStreamBuilder.getInputStream(), otherwise, this method throws an exception.This builder uses the following aspects: - AbstractStreamBuilder.getInputStream()gets the target aspect.
- Checksum
- expectedChecksumValue
- countThreshold
 - Returns:
- a new instance.
- Throws:
- IllegalStateException- if the- originis- null.
- UnsupportedOperationException- if the origin cannot be converted to an- InputStream.
- IOException- if an I/O error occurs converting to an- InputStreamusing- AbstractStreamBuilder.getInputStream().
- See Also:
 
- 
setChecksumSets the Checksum. There is no defaultChecksum, you MUST provide one. This avoids any issue with a defaultChecksumbeing proven deficient or insecure in the future.- Parameters:
- checksum- the Checksum.
- Returns:
- thisinstance.
 
- 
setCountThresholdSets the count threshold to limit how much input is consumed to update theChecksumbefore the input stream validates its value.By default, all input updates the Checksum.- Parameters:
- countThreshold- the count threshold. A negative number means the threshold is unbound.
- Returns:
- thisinstance.
 
- 
setExpectedChecksumValueThe expectedChecksumvalue once the stream is exhausted or the count threshold is reached.- Parameters:
- expectedChecksumValue- The expected Checksum value.
- Returns:
- thisinstance.
 
 
-