Class BranchingReaderSource


  • public final class BranchingReaderSource
    extends ReaderSource
    Specialized input source that can "branch" input it reads; essentially both giving out read data AND also writing it out to a Writer.

    Currently this Reader is only used as the main-level Reader, to allow for branching of internal DTD subset to a text buffer if necessary.

    • Field Detail

      • mBranchStartOffset

        int mBranchStartOffset
      • mConvertLFs

        boolean mConvertLFs
      • mGotCR

        boolean mGotCR
        Flag that indicates that last char from previous buffer was '\r', and that following '\n' (if there is one) needs to be ignored.
    • Constructor Detail

      • BranchingReaderSource

        public BranchingReaderSource​(ReaderConfig cfg,
                                     java.lang.String pubId,
                                     SystemId sysId,
                                     java.io.Reader r,
                                     boolean realClose)
    • Method Detail

      • readInto

        public int readInto​(WstxInputData reader)
                     throws java.io.IOException,
                            javax.xml.stream.XMLStreamException
        Description copied from class: WstxInputSource
        Method called to read at least one more char from input source, and update input data appropriately.
        Overrides:
        readInto in class ReaderSource
        Returns:
        Number of characters read from the input source (at least 1), if it had any input; -1 if input source has no more input.
        Throws:
        java.io.IOException
        javax.xml.stream.XMLStreamException
      • readMore

        public boolean readMore​(WstxInputData reader,
                                int minAmount)
                         throws java.io.IOException,
                                javax.xml.stream.XMLStreamException
        Description copied from class: WstxInputSource
        Method called by reader when it has to have at least specified number of consequtive input characters in its buffer, and it currently does not have. If so, it asks input source to do whatever it has to do to try to get more data, if possible (including moving stuff in input buffer if necessary and possible).
        Overrides:
        readMore in class ReaderSource
        Returns:
        True if input source was able to provide specific number of characters or more; false if not. In latter case, source is free to return zero or more characters any way.
        Throws:
        java.io.IOException
        javax.xml.stream.XMLStreamException
      • startBranch

        public void startBranch​(TextBuffer tb,
                                int startOffset,
                                boolean convertLFs)
      • endBranch

        public void endBranch​(int endOffset)
        Currently this input source does not implement branching
      • appendBranched

        private void appendBranched​(int startOffset,
                                    int pastEnd)