Class HtmlInputStreamReader

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, java.lang.Readable, ByteReadable, org.xml.sax.Locator

    public final class HtmlInputStreamReader
    extends java.io.Reader
    implements ByteReadable, org.xml.sax.Locator
    Be very careful with this class. It is not a general-purpose subclass of of Reader. Instead, it is the minimal implementation that does what Tokenizer needs while being an instance of Reader. The only reason why this is a public class is that it needs to be visible to test code in another package.
    Version:
    $Id$
    • Field Detail

      • inputStream

        private final java.io.InputStream inputStream
      • errorHandler

        private final org.xml.sax.ErrorHandler errorHandler
      • tokenizer

        private final Tokenizer tokenizer
      • driver

        private final Driver driver
      • decoder

        private java.nio.charset.CharsetDecoder decoder
      • sniffing

        private boolean sniffing
      • limit

        private int limit
      • position

        private int position
      • bytesRead

        private int bytesRead
      • eofSeen

        private boolean eofSeen
      • shouldReadBytes

        private boolean shouldReadBytes
      • charsetBoundaryPassed

        private boolean charsetBoundaryPassed
      • byteArray

        private final byte[] byteArray
      • byteBuffer

        private final java.nio.ByteBuffer byteBuffer
      • needToNotifyTokenizer

        private boolean needToNotifyTokenizer
      • flushing

        private boolean flushing
      • line

        private int line
      • col

        private int col
      • lineColPos

        private int lineColPos
      • hasPendingReplacementCharacter

        private boolean hasPendingReplacementCharacter
      • nextCharOnNewLine

        private boolean nextCharOnNewLine
      • prevWasCR

        private boolean prevWasCR
    • Constructor Detail

      • HtmlInputStreamReader

        public HtmlInputStreamReader​(java.io.InputStream inputStream,
                                     org.xml.sax.ErrorHandler errorHandler,
                                     Tokenizer tokenizer,
                                     Driver driver,
                                     Heuristics heuristics)
                              throws org.xml.sax.SAXException,
                                     java.io.IOException
        Parameters:
        inputStream -
        errorHandler -
        locator -
        Throws:
        java.io.IOException
        org.xml.sax.SAXException
      • HtmlInputStreamReader

        public HtmlInputStreamReader​(java.io.InputStream inputStream,
                                     org.xml.sax.ErrorHandler errorHandler,
                                     Tokenizer tokenizer,
                                     Driver driver,
                                     Encoding encoding)
                              throws org.xml.sax.SAXException,
                                     java.io.IOException
        Throws:
        org.xml.sax.SAXException
        java.io.IOException
    • Method Detail

      • initDecoder

        private void initDecoder()
      • close

        public void close()
                   throws java.io.IOException
        Specified by:
        close in interface java.lang.AutoCloseable
        Specified by:
        close in interface java.io.Closeable
        Specified by:
        close in class java.io.Reader
        Throws:
        java.io.IOException
      • read

        public int read​(char[] charArray)
                 throws java.io.IOException
        Overrides:
        read in class java.io.Reader
        Throws:
        java.io.IOException
      • calculateLineAndCol

        private void calculateLineAndCol​(java.nio.CharBuffer charBuffer)
      • readByte

        public int readByte()
                     throws java.io.IOException
        Description copied from interface: ByteReadable
        Returns the value of the next byte as an integer from 0 to 0xFF or -1 if the stream has ended.
        Specified by:
        readByte in interface ByteReadable
        Returns:
        integer from 0 to 0xFF or -1 on EOF
        Throws:
        java.io.IOException
      • main

        public static void main​(java.lang.String[] args)
      • getColumnNumber

        public int getColumnNumber()
        Specified by:
        getColumnNumber in interface org.xml.sax.Locator
      • getLineNumber

        public int getLineNumber()
        Specified by:
        getLineNumber in interface org.xml.sax.Locator
      • getPublicId

        public java.lang.String getPublicId()
        Specified by:
        getPublicId in interface org.xml.sax.Locator
      • getSystemId

        public java.lang.String getSystemId()
        Specified by:
        getSystemId in interface org.xml.sax.Locator
      • err

        private void err​(java.lang.String message)
                  throws java.io.IOException
        Parameters:
        string -
        Throws:
        org.xml.sax.SAXException
        java.io.IOException
      • getCharset

        public java.nio.charset.Charset getCharset()
      • read

        public int read()
                 throws java.io.IOException
        Overrides:
        read in class java.io.Reader
        Throws:
        java.io.IOException
        See Also:
        Reader.read()
      • read

        public int read​(char[] cbuf,
                        int off,
                        int len)
                 throws java.io.IOException
        Specified by:
        read in class java.io.Reader
        Throws:
        java.io.IOException
        See Also:
        Reader.read(char[], int, int)
      • read

        public int read​(java.nio.CharBuffer target)
                 throws java.io.IOException
        Specified by:
        read in interface java.lang.Readable
        Overrides:
        read in class java.io.Reader
        Throws:
        java.io.IOException
        See Also:
        Reader.read(java.nio.CharBuffer)
      • switchEncoding

        public void switchEncoding​(Encoding newEnc)