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 Details

    • mBranchBuffer

      TextBuffer mBranchBuffer
    • 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 Details

  • Method Details

    • readInto

      public int readInto(WstxInputData reader) throws IOException, 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:
      IOException
      XMLStreamException
    • readMore

      public boolean readMore(WstxInputData reader, int minAmount) throws IOException, 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:
      IOException
      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)