com.ctc.wstx.io
Class ReaderSource

java.lang.Object
  extended by com.ctc.wstx.io.WstxInputSource
      extended by com.ctc.wstx.io.BaseInputSource
          extended by com.ctc.wstx.io.ReaderSource
Direct Known Subclasses:
BranchingReaderSource

public class ReaderSource
extends BaseInputSource

Input source that reads input via a Reader.


Field Summary
 
Fields inherited from class com.ctc.wstx.io.BaseInputSource
mBuffer, mInputLen
 
Fields inherited from class com.ctc.wstx.io.WstxInputSource
mParent
 
Constructor Summary
ReaderSource(ReaderConfig cfg, WstxInputSource parent, java.lang.String fromEntity, java.lang.String pubId, java.lang.String sysId, java.net.URL src, java.io.Reader r, boolean realClose)
           
 
Method Summary
 void close()
          Method reader calls for this input source when it has encountered EOF.
 void closeCompletely()
          Method reader MAY call to force full closing of the underlying input stream(s)/reader(s).
protected  void doInitInputLocation(WstxInputData reader)
          Input location is easy to set, as we'll start from the beginning of a File.
 boolean fromInternalEntity()
          This is a hard-coded assumption, for now this source is only created from external entities
 int readInto(WstxInputData reader)
          Method called to read at least one more char from input source, and update input data appropriately.
 boolean readMore(WstxInputData reader, int minAmount)
          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.
 void setInputOffsets(int proc, int row, int rowStart)
          Method called to change the default offsets this source has.
 
Methods inherited from class com.ctc.wstx.io.BaseInputSource
getLocation, getLocation, getPublicId, getSource, getSystemId, restoreContext, saveContext
 
Methods inherited from class com.ctc.wstx.io.WstxInputSource
getEntityId, getParent, getScopeId, initInputLocation, isOrIsExpandedFrom, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ReaderSource

public ReaderSource(ReaderConfig cfg,
                    WstxInputSource parent,
                    java.lang.String fromEntity,
                    java.lang.String pubId,
                    java.lang.String sysId,
                    java.net.URL src,
                    java.io.Reader r,
                    boolean realClose)
Method Detail

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 java.io.IOException
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:
java.io.IOException

readMore

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

close

public void close()
           throws java.io.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:
java.io.IOException

closeCompletely

public void closeCompletely()
                     throws java.io.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:
java.io.IOException