Class ChecksumInputStream.Builder

  • All Implemented Interfaces:
    IOSupplier<ChecksumInputStream>
    Enclosing class:
    ChecksumInputStream

    public static class ChecksumInputStream.Builder
    extends AbstractStreamBuilder<ChecksumInputStream,​ChecksumInputStream.Builder>
    Builds a new ChecksumInputStream.

    There is no default Checksum; you MUST provide one.

    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:
    get()
    • Constructor Detail

      • Builder

        public Builder()
    • Method Detail

      • setChecksum

        public ChecksumInputStream.Builder setChecksum​(java.util.zip.Checksum checksum)
        Sets the Checksum.
        Parameters:
        checksum - the Checksum.
        Returns:
        this.
      • setCountThreshold

        public ChecksumInputStream.Builder setCountThreshold​(long countThreshold)
        Sets the count threshold to limit how much input is consumed to update the Checksum before 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:
        this.
      • setExpectedChecksumValue

        public ChecksumInputStream.Builder setExpectedChecksumValue​(long expectedChecksumValue)
        The expected Checksum value once the stream is exhausted or the count threshold is reached.
        Parameters:
        expectedChecksumValue - The expected Checksum value.
        Returns:
        this.