org.apache.commons.io.input

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

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

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

  Builds a new `XmlStreamWriter` instance. Constructs a Reader using an InputStream and the associated content-type header. This constructor is lenient regarding the encoding detection.

  First it checks if the stream has BOM. If there is not BOM checks the content-type encoding. If there is not content-type encoding checks the XML prolog encoding. If there is not XML prolog encoding uses the default encoding mandated by the content-type MIME type.

  If lenient detection is indicated and the detection above fails as per specifications it then attempts the following:

  If the content type was 'text/html' it replaces it with 'text/xml' and tries the detection again.

  Else if the XML prolog had a charset encoding that encoding is used.

  Else if the content type had a charset encoding that encoding is used.

  Else 'UTF-8' is used.

  If lenient detection is indicated an XmlStreamReaderException is never thrown.

  For example:

       XmlStreamReader r = XmlStreamReader.builder()
         .setPath(path)
         .setCharset(StandardCharsets.UTF_8)
         .get();

  Since:
    2.12.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Builder()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `XmlStreamReader` | `get()` Constructs a new instance.
    `XmlStreamReader.Builder` | `setCharset(Charset charset)` Sets the Charset.
    `XmlStreamReader.Builder` | `setCharset(String charset)` Sets the Charset.
    `XmlStreamReader.Builder` | `setHttpContentType(String httpContentType)`
    `XmlStreamReader.Builder` | `setLenient(boolean lenient)`

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

      `getBufferSize, getBufferSizeDefault, getCharSequence, getCharset, getCharsetDefault, getInputStream, getOpenOptions, getOutputStream, getPath, getWriter, setBufferSize, setBufferSize, setBufferSizeDefault, setCharsetDefault, setOpenOptions`

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

      `checkOrigin, getOrigin, hasOrigin, newByteArrayOrigin, newCharSequenceOrigin, newFileOrigin, newFileOrigin, newInputStreamOrigin, newOutputStreamOrigin, newPathOrigin, newPathOrigin, newReaderOrigin, newURIOrigin, newWriterOrigin, setByteArray, setCharSequence, setFile, setFile, setInputStream, setOrigin, setOutputStream, setPath, setPath, 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`

- - ### Constructor Detail

    - #### Builder

          public Builder()

  - ### Method Detail

    - #### get

          public XmlStreamReader get()
                              throws IOException

      Constructs a new instance.

      This builder use the aspect InputStream, OpenOption[], httpContentType, lenient, and defaultEncoding.

      You must provide an origin that can be converted to an InputStream by this builder, otherwise, this call will throw an `UnsupportedOperationException`.

      Returns:
        a new instance.
      Throws:
        `UnsupportedOperationException` - if the origin cannot provide an InputStream.
        `IOException` - thrown if there is a problem reading the stream.
        `XmlStreamReaderException` - thrown if the charset encoding could not be determined according to the specification.
      See Also:
        `AbstractStreamBuilder.getInputStream()`

    - #### setCharset

          public XmlStreamReader.Builder setCharset(Charset charset)

      Description copied from class: `AbstractStreamBuilder`
      Sets the Charset.

      Subclasses may ignore this setting.

      Overrides:
        `setCharset` in class `AbstractStreamBuilder<XmlStreamReader,XmlStreamReader.Builder>`
      Parameters:
        `charset` - the Charset, null resets to the default.
      Returns:
        this.

    - #### setCharset

          public XmlStreamReader.Builder setCharset(String charset)

      Description copied from class: `AbstractStreamBuilder`
      Sets the Charset.

      Subclasses may ignore this setting.

      Overrides:
        `setCharset` in class `AbstractStreamBuilder<XmlStreamReader,XmlStreamReader.Builder>`
      Parameters:
        `charset` - the Charset name, null resets to the default.
      Returns:
        this.

    - #### setHttpContentType

          public XmlStreamReader.Builder setHttpContentType(String httpContentType)

    - #### setLenient

          public XmlStreamReader.Builder setLenient(boolean lenient)

Copyright © 2002–2023 The Apache Software Foundation. All rights reserved.