org.apache.commons.io.serialization

## Class ValidatingObjectInputStream.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<ValidatingObjectInputStream,ValidatingObjectInputStream.Builder>
      - - org.apache.commons.io.serialization.ValidatingObjectInputStream.Builder

- All Implemented Interfaces:
    IOSupplier<ValidatingObjectInputStream>
  Enclosing class:
    ValidatingObjectInputStream

      public static class ValidatingObjectInputStream.Builder
      extends AbstractStreamBuilder<ValidatingObjectInputStream,ValidatingObjectInputStream.Builder>

  Builds a new `ValidatingObjectInputStream`.

  ## Using NIO

       ValidatingObjectInputStream s = ValidatingObjectInputStream.builder()
         .setPath(Paths.get("MyFile.ser"))
         .get();

  ## Using IO

       ValidatingObjectInputStream s = ValidatingObjectInputStream.builder()
         .setFile(new File("MyFile.ser"))
         .get();

  See Also:
    `get()`

- - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `ValidatingObjectInputStream.Builder` | `accept(Class<?>... classes)` Accepts the specified classes for deserialization, unless they are otherwise rejected.
    `ValidatingObjectInputStream.Builder` | `accept(ClassNameMatcher matcher)` Accepts class names where the supplied ClassNameMatcher matches for deserialization, unless they are otherwise rejected.
    `ValidatingObjectInputStream.Builder` | `accept(Pattern pattern)` Accepts class names that match the supplied pattern for deserialization, unless they are otherwise rejected.
    `ValidatingObjectInputStream.Builder` | `accept(String... patterns)` Accepts the wildcard specified classes for deserialization, unless they are otherwise rejected.
    `ValidatingObjectInputStream` | `get()` Builds a new `ValidatingObjectInputStream`.
    `ObjectStreamClassPredicate` | `getPredicate()` Gets the predicate.
    `ValidatingObjectInputStream.Builder` | `reject(Class<?>... classes)` Rejects the specified classes for deserialization, even if they are otherwise accepted.
    `ValidatingObjectInputStream.Builder` | `reject(ClassNameMatcher matcher)` Rejects class names where the supplied ClassNameMatcher matches for deserialization, even if they are otherwise accepted.
    `ValidatingObjectInputStream.Builder` | `reject(Pattern pattern)` Rejects class names that match the supplied pattern for deserialization, even if they are otherwise accepted.
    `ValidatingObjectInputStream.Builder` | `reject(String... patterns)` Rejects the wildcard specified classes for deserialization, even if they are otherwise accepted.
    `ValidatingObjectInputStream.Builder` | `setPredicate(ObjectStreamClassPredicate predicate)` Sets the predicate, null resets to an empty new ObjectStreamClassPredicate.

    - ### 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`

- - ### Method Detail

    - #### accept

          public ValidatingObjectInputStream.Builder accept(Class<?>... classes)

      Accepts the specified classes for deserialization, unless they are otherwise rejected.
      Parameters:
        `classes` - Classes to accept
      Returns:
        this object

    - #### accept

          public ValidatingObjectInputStream.Builder accept(ClassNameMatcher matcher)

      Accepts class names where the supplied ClassNameMatcher matches for deserialization, unless they are otherwise rejected.
      Parameters:
        `matcher` - a class name matcher to accept objects.
      Returns:
        this instance.

    - #### accept

          public ValidatingObjectInputStream.Builder accept(Pattern pattern)

      Accepts class names that match the supplied pattern for deserialization, unless they are otherwise rejected.
      Parameters:
        `pattern` - a Pattern for compiled regular expression.
      Returns:
        this instance.

    - #### accept

          public ValidatingObjectInputStream.Builder accept(String... patterns)

      Accepts the wildcard specified classes for deserialization, unless they are otherwise rejected.
      Parameters:
        `patterns` - Wildcard file name patterns as defined by `FilenameUtils.wildcardMatch`
      Returns:
        this instance.

    - #### get

          public ValidatingObjectInputStream get()
                                          throws IOException

      Builds a new `ValidatingObjectInputStream`.

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

      This builder uses the following aspects:

      - `AbstractStreamBuilder.getInputStream()` gets the target aspect.
      - predicate
      - charsetDecoder
      - writeImmediately
      Returns:
        a new instance.
      Throws:
        `UnsupportedOperationException` - if the origin cannot provide a `InputStream`.
        `IOException` - if an I/O error occurs converting to an `InputStream` using `AbstractStreamBuilder.getInputStream()`.
      See Also:
        `AbstractStreamBuilder.getWriter()`, `IOSupplier.getUnchecked()`

    - #### getPredicate

          public ObjectStreamClassPredicate getPredicate()

      Gets the predicate.
      Returns:
        the predicate.

    - #### reject

          public ValidatingObjectInputStream.Builder reject(Class<?>... classes)

      Rejects the specified classes for deserialization, even if they are otherwise accepted.
      Parameters:
        `classes` - Classes to reject
      Returns:
        this instance.

    - #### reject

          public ValidatingObjectInputStream.Builder reject(ClassNameMatcher matcher)

      Rejects class names where the supplied ClassNameMatcher matches for deserialization, even if they are otherwise accepted.
      Parameters:
        `matcher` - the matcher to use
      Returns:
        this instance.

    - #### reject

          public ValidatingObjectInputStream.Builder reject(Pattern pattern)

      Rejects class names that match the supplied pattern for deserialization, even if they are otherwise accepted.
      Parameters:
        `pattern` - standard Java regexp
      Returns:
        this instance.

    - #### reject

          public ValidatingObjectInputStream.Builder reject(String... patterns)

      Rejects the wildcard specified classes for deserialization, even if they are otherwise accepted.
      Parameters:
        `patterns` - Wildcard file name patterns as defined by `FilenameUtils.wildcardMatch`
      Returns:
        this instance.

    - #### setPredicate

          public ValidatingObjectInputStream.Builder setPredicate(ObjectStreamClassPredicate predicate)

      Sets the predicate, null resets to an empty new ObjectStreamClassPredicate.
      Parameters:
        `predicate` - the predicate.
      Returns:
        this instance.