## org.jibx.runtime.impl
Class InputStreamWrapper

    java.lang.Object
      org.jibx.runtime.impl.InputStreamWrapper

    public class InputStreamWrapper

extends java.lang.Object

Wrapper for input stream that supports multiple character encodings. This is needed because the XPP3 pull parser does not support detecting the character encoding for a document based on the content of the document. If used with a common encoding this performs the conversion to characters using an inner reader class; otherwise, this creates the appropriate reader type

Version:
  1.0
Author:
  Dennis M. Sosnoski

Constructor Summary
`InputStreamWrapper()` Constructor.

Method Summary
`void` `close()` Close document input.
`java.lang.String` `getEncoding()` Get encoding for input document.
`java.io.Reader` `getReader()` Get reader for wrapped input stream.
`void` `reset()` Reset to initial state for reuse.
`void` `setEncoding(java.lang.String enc)` Set encoding for stream.
`void` `setInput(java.io.InputStream ins)` Set input stream with encoding to be defined later.
`void` `setInput(java.io.InputStream ins, java.lang.String enc)` Set input stream with specified encoding.

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### InputStreamWrapper

    public InputStreamWrapper()

  Constructor.

Method Detail

### setInput

    public void setInput(java.io.InputStream ins)

  Set input stream with encoding to be defined later. If an input stream is currently open when this is called the existing stream is closed, with any errors ignored.

  Parameters:
    `ins` - stream for document data input

### setInput

    public void setInput(java.io.InputStream ins,
                         java.lang.String enc)
                  throws java.io.IOException

  Set input stream with specified encoding. If an input stream is currently open when this is called the existing stream is closed, with any errors ignored.

  Parameters:
    `ins` - stream for document data input
    `enc` - character encoding used for input from stream (`null` if to be determined from XML input)
  Throws:
    `java.io.IOException`

### setEncoding

    public void setEncoding(java.lang.String enc)
                     throws java.io.IOException

  Set encoding for stream. This call is only valid if the encoding has not been set previously, and if the encoding is a recognized type.

  Parameters:
    `enc` - character encoding used for input from stream (`null` if to be determined from XML input)
  Throws:
    `java.io.IOException` - if unknown encoding, or encoding already set

### getReader

    public java.io.Reader getReader()
                             throws java.io.IOException

  Get reader for wrapped input stream. This creates and returns a reader using the appropriate encoding, if necessary reading and examining the first part of the stream (including the XML declaration, if present) to determine the encoding.

  Throws:
    `java.io.IOException` - if error reading from document or creating a reader for the encoding found

### getEncoding

    public java.lang.String getEncoding()

  Get encoding for input document. This call may not return an accurate result until after `getReader()` is called.

  Returns:
    character encoding for input document

### close

    public void close()
               throws java.io.IOException

  Close document input. Completes reading of document input, including closing the input medium.

  Throws:
    `java.io.IOException` - on error closing document

### reset

    public void reset()

  Reset to initial state for reuse.

Project Web Site |