Package org.apache.commons.io.input

# Class MessageDigestCalculatingInputStream.Builder

java.lang.Object
org.apache.commons.io.build.AbstractSupplier<T,B>
org.apache.commons.io.build.AbstractOriginSupplier<T,B>
org.apache.commons.io.build.AbstractStreamBuilder<T,B>
org.apache.commons.io.input.ProxyInputStream.AbstractBuilder<ObservableInputStream,T>
org.apache.commons.io.input.ObservableInputStream.AbstractBuilder<MessageDigestCalculatingInputStream.Builder>
org.apache.commons.io.input.MessageDigestCalculatingInputStream.Builder

All Implemented Interfaces:
  `IOSupplier<ObservableInputStream>`

Enclosing class:
  MessageDigestCalculatingInputStream

public static class MessageDigestCalculatingInputStream.Builder extends ObservableInputStream.AbstractBuilder<MessageDigestCalculatingInputStream.Builder>
Builds a new `MessageDigestCalculatingInputStream`.

For example:

     MessageDigestCalculatingInputStream s = MessageDigestCalculatingInputStream.builder()
       .setPath(path)
       .setMessageDigest("SHA-512")
       .get();

The MD5 cryptographic algorithm is weak and should not be used.

Since:
  2.12.0
See Also:
  - `get()`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `Builder()`
  Constructs a new `MessageDigestCalculatingInputStream.Builder`.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `MessageDigestCalculatingInputStream`
  `get()`
  Builds a new `MessageDigestCalculatingInputStream`.
  `void`
  `setMessageDigest(String algorithm)`
  Sets the name of the name of the message digest algorithm.
  `void`
  `setMessageDigest(MessageDigest messageDigest)`
  Sets the message digest.

  ### Methods inherited from class org.apache.commons.io.input.ObservableInputStream.AbstractBuilder

  `setObservers`

  ### Methods inherited from class org.apache.commons.io.input.ProxyInputStream.AbstractBuilder

  `getAfterRead, setAfterRead`

  ### Methods inherited from class org.apache.commons.io.build.AbstractStreamBuilder

  `getBufferSize, getBufferSizeDefault, getCharSequence, getCharset, getCharsetDefault, getFile, getInputStream, getOpenOptions, getOutputStream, getPath, getRandomAccessFile, getReader, getWriter, setBufferSize, setBufferSize, setBufferSizeChecker, setBufferSizeDefault, setBufferSizeMax, setCharset, setCharset, setCharsetDefault, setOpenOptions`

  ### Methods inherited from class org.apache.commons.io.build.AbstractOriginSupplier

  `checkOrigin, 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, setWriter`

  ### Methods inherited from class org.apache.commons.io.build.AbstractSupplier

  `asThis`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

  ### Methods inherited from interface org.apache.commons.io.function.IOSupplier

  `asSupplier, getUnchecked`

- ## Constructor Details

  - ### Builder

    public Builder()
    Constructs a new `MessageDigestCalculatingInputStream.Builder`.

    The default for compatibility is the MD5 cryptographic algorithm which is weak and should not be used.

- ## Method Details

  - ### get

    public MessageDigestCalculatingInputStream get() throws IOException
    Builds a new `MessageDigestCalculatingInputStream`.

    You must set input that supports `AbstractStreamBuilder.getInputStream()`, otherwise, this method throws an exception.

    This builder use the following aspects:

    - `AbstractStreamBuilder.getPath()`
    - `MessageDigest`
    Returns:
      a new instance.
    Throws:
      `NullPointerException` - if messageDigest is null.
      `IllegalStateException` - if the `origin` is `null`.
      `UnsupportedOperationException` - if the origin cannot be converted to an `InputStream`.
      `IOException` - if an I/O error occurs.
    See Also:
      - `AbstractStreamBuilder.getInputStream()`

  - ### setMessageDigest

    public void setMessageDigest(MessageDigest messageDigest)
    Sets the message digest.

    The MD5 cryptographic algorithm is weak and should not be used.

    Parameters:
      `messageDigest` - the message digest.

  - ### setMessageDigest

    public void setMessageDigest(String algorithm) throws NoSuchAlgorithmException
    Sets the name of the name of the message digest algorithm.

    The MD5 cryptographic algorithm is weak and should not be used.

    Parameters:
      `algorithm` - the name of the algorithm. See the MessageDigest section in the Java Cryptography Architecture Standard Algorithm Name Documentation for information about standard algorithm names.
    Throws:
      `NoSuchAlgorithmException` - if no Provider supports a MessageDigestSpi implementation for the specified algorithm.