Class ReaderSource

Direct Known Subclasses:
BranchingReaderSource

public class ReaderSource extends BaseInputSource
Input source that reads input via a Reader.
  • Field Details

    • mConfig

      final ReaderConfig mConfig
    • mReader

      protected Reader mReader
      Underlying Reader to read character data from
    • mDoRealClose

      final boolean mDoRealClose
      If true, will close the underlying Reader when this source is closed; if false will leave it open.
    • mInputProcessed

      int mInputProcessed
    • mInputRow

      int mInputRow
    • mInputRowStart

      int mInputRowStart
  • Constructor Details

  • Method Details

    • setInputOffsets

      public void setInputOffsets(int proc, int row, int rowStart)
      Method called to change the default offsets this source has. Generally done when the underlying Reader had been partially read earlier (like reading the xml declaration before starting real parsing).
    • doInitInputLocation

      protected void doInitInputLocation(WstxInputData reader)
      Input location is easy to set, as we'll start from the beginning of a File.
      Specified by:
      doInitInputLocation in class BaseInputSource
    • fromInternalEntity

      public boolean fromInternalEntity()
      This is a hard-coded assumption, for now this source is only created from external entities
      Specified by:
      fromInternalEntity in class BaseInputSource
      Returns:
      True, if this input source was directly expanded from an internal entity (general, parsed); false if not (from external entity, DTD ext. subset, main document)
    • 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.
      Specified by:
      readInto in class BaseInputSource
      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).
      Specified by:
      readMore in class BaseInputSource
      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
    • close

      public void close() throws IOException
      Description copied from class: WstxInputSource
      Method reader calls for this input source when it has encountered EOF. This may or may not close the underlying stream/reader; what happens depends on configuration
      Specified by:
      close in class BaseInputSource
      Throws:
      IOException
    • closeCompletely

      public void closeCompletely() throws IOException
      Description copied from class: WstxInputSource
      Method reader MAY call to force full closing of the underlying input stream(s)/reader(s). No checks are done regarding configuration, but input source object is to deal gracefully with multiple calls (ie. it's not an error for reader to call this more than once).
      Specified by:
      closeCompletely in class WstxInputSource
      Throws:
      IOException
    • closeAndRecycle

      private void closeAndRecycle(boolean fullClose) throws IOException
      Throws:
      IOException