com.ctc.wstx.io
Class InputBootstrapper

java.lang.Object
  extended by com.ctc.wstx.io.InputBootstrapper
Direct Known Subclasses:
ReaderBootstrapper, StreamBootstrapper

public abstract class InputBootstrapper
extends java.lang.Object

Abstract base class that defines common API used with both stream and reader-based input sources. Class is responsible for opening the physical input source, figure out encoding (if necessary; only for streams), and then handle (optional) XML declaration.


Field Summary
static byte BYTE_CR
           
static byte BYTE_LF
           
static byte BYTE_NULL
           
static byte CHAR_CR
           
static byte CHAR_LF
           
static char CHAR_NULL
           
static char CHAR_SPACE
           
protected static java.lang.String ERR_XMLDECL_END_MARKER
           
protected static java.lang.String ERR_XMLDECL_EXP_ATTRVAL
           
protected static java.lang.String ERR_XMLDECL_EXP_EQ
           
protected static java.lang.String ERR_XMLDECL_EXP_SPACE
           
protected static java.lang.String ERR_XMLDECL_KW_ENCODING
           
protected static java.lang.String ERR_XMLDECL_KW_STANDALONE
           
protected static java.lang.String ERR_XMLDECL_KW_VERSION
           
protected  int mInputProcessed
          Current number of characters that were processed in previous blocks, before contents of current input buffer.
protected  int mInputRow
          Current row location of current point in input buffer, starting from 1
protected  int mInputRowStart
          Current index of the first character of the current row in input buffer.
protected  java.lang.String mPublicId
           
protected  java.lang.String mSystemId
           
 
Constructor Summary
protected InputBootstrapper(java.lang.String pubId, java.lang.String sysId)
           
 
Method Summary
abstract  java.io.Reader bootstrapInput(ReaderConfig cfg, boolean mainDoc, int xmlVersion)
           
protected abstract  int checkKeyword(java.lang.String exp)
           
 boolean declaredXml11()
           
 java.lang.String getDeclaredEncoding()
           
 int getDeclaredVersion()
           
abstract  int getInputColumn()
           
abstract  java.lang.String getInputEncoding()
          Actual character encoding used by the underlying input source; may have been passed by the application, or auto-detected by byte stream boot strapper (can not be determined from a Reader source).
 int getInputRow()
           
abstract  int getInputTotal()
           
protected abstract  javax.xml.stream.Location getLocation()
           
protected abstract  int getNext()
           
protected abstract  int getNextAfterWs(boolean reqWs)
           
 java.lang.String getPublicId()
           
 java.lang.String getStandalone()
           
 java.lang.String getSystemId()
           
protected abstract  void pushback()
           
protected abstract  int readQuotedValue(char[] kw, int quoteChar)
           
protected  void readXmlDecl(boolean isMainDoc, int xmlVersion)
           
protected  void reportNull()
           
protected  void reportUnexpectedChar(int i, java.lang.String msg)
           
protected  void reportXmlProblem(java.lang.String msg)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ERR_XMLDECL_KW_VERSION

protected static final java.lang.String ERR_XMLDECL_KW_VERSION
See Also:
Constant Field Values

ERR_XMLDECL_KW_ENCODING

protected static final java.lang.String ERR_XMLDECL_KW_ENCODING
See Also:
Constant Field Values

ERR_XMLDECL_KW_STANDALONE

protected static final java.lang.String ERR_XMLDECL_KW_STANDALONE
See Also:
Constant Field Values

ERR_XMLDECL_END_MARKER

protected static final java.lang.String ERR_XMLDECL_END_MARKER
See Also:
Constant Field Values

ERR_XMLDECL_EXP_SPACE

protected static final java.lang.String ERR_XMLDECL_EXP_SPACE
See Also:
Constant Field Values

ERR_XMLDECL_EXP_EQ

protected static final java.lang.String ERR_XMLDECL_EXP_EQ
See Also:
Constant Field Values

ERR_XMLDECL_EXP_ATTRVAL

protected static final java.lang.String ERR_XMLDECL_EXP_ATTRVAL
See Also:
Constant Field Values

CHAR_NULL

public static final char CHAR_NULL
See Also:
Constant Field Values

CHAR_SPACE

public static final char CHAR_SPACE
See Also:
Constant Field Values

CHAR_CR

public static final byte CHAR_CR
See Also:
Constant Field Values

CHAR_LF

public static final byte CHAR_LF
See Also:
Constant Field Values

BYTE_NULL

public static final byte BYTE_NULL
See Also:
Constant Field Values

BYTE_CR

public static final byte BYTE_CR
See Also:
Constant Field Values

BYTE_LF

public static final byte BYTE_LF
See Also:
Constant Field Values

mPublicId

protected final java.lang.String mPublicId

mSystemId

protected final java.lang.String mSystemId

mInputProcessed

protected int mInputProcessed
Current number of characters that were processed in previous blocks, before contents of current input buffer.


mInputRow

protected int mInputRow
Current row location of current point in input buffer, starting from 1


mInputRowStart

protected int mInputRowStart
Current index of the first character of the current row in input buffer. Needed to calculate column position, if necessary; benefit of not having column itself is that this only has to be updated once per line.

Constructor Detail

InputBootstrapper

protected InputBootstrapper(java.lang.String pubId,
                            java.lang.String sysId)
Method Detail

bootstrapInput

public abstract java.io.Reader bootstrapInput(ReaderConfig cfg,
                                              boolean mainDoc,
                                              int xmlVersion)
                                       throws java.io.IOException,
                                              javax.xml.stream.XMLStreamException
Parameters:
xmlVersion - Optional xml version identifier of the main parsed document (if not bootstrapping the main document). Currently only relevant for checking that XML 1.0 document does not include XML 1.1 external parsed entities. If null, no checks will be done; when bootstrapping parsing of the main document, null should be passed for this argument.
Throws:
java.io.IOException
javax.xml.stream.XMLStreamException

getPublicId

public java.lang.String getPublicId()

getSystemId

public java.lang.String getSystemId()

getDeclaredVersion

public int getDeclaredVersion()

declaredXml11

public boolean declaredXml11()
Returns:
True, if the input bootstrapped declared that it conforms to xml 1.1 (independent of where it was included from)

getStandalone

public java.lang.String getStandalone()

getDeclaredEncoding

public java.lang.String getDeclaredEncoding()
Returns:
Encoding declaration found from the xml declaration, if any; null if none.

getInputTotal

public abstract int getInputTotal()
Returns:
Total number of characters read from bootstrapped input (stream, reader)

getInputRow

public int getInputRow()

getInputColumn

public abstract int getInputColumn()

getInputEncoding

public abstract java.lang.String getInputEncoding()
Actual character encoding used by the underlying input source; may have been passed by the application, or auto-detected by byte stream boot strapper (can not be determined from a Reader source).

Returns:
Input encoding in use, if it could be determined or was passed by the calling application

readXmlDecl

protected void readXmlDecl(boolean isMainDoc,
                           int xmlVersion)
                    throws java.io.IOException,
                           WstxException
Parameters:
xmlVersion - Optional xml version identifier of the main parsed document (if not bootstrapping the main document). Currently only relevant for checking that XML 1.0 document does not include XML 1.1 external parsed entities. If null, no checks will be done; when bootstrapping parsing of the main document, null should be passed for this argument.
Throws:
java.io.IOException
WstxException

pushback

protected abstract void pushback()

getNext

protected abstract int getNext()
                        throws java.io.IOException,
                               WstxException
Throws:
java.io.IOException
WstxException

getNextAfterWs

protected abstract int getNextAfterWs(boolean reqWs)
                               throws java.io.IOException,
                                      WstxException
Throws:
java.io.IOException
WstxException

checkKeyword

protected abstract int checkKeyword(java.lang.String exp)
                             throws java.io.IOException,
                                    WstxException
Returns:
First character that does not match expected, if any; CHAR_NULL if match succeeded
Throws:
java.io.IOException
WstxException

readQuotedValue

protected abstract int readQuotedValue(char[] kw,
                                       int quoteChar)
                                throws java.io.IOException,
                                       WstxException
Throws:
java.io.IOException
WstxException

getLocation

protected abstract javax.xml.stream.Location getLocation()

reportNull

protected void reportNull()
                   throws WstxException
Throws:
WstxException

reportXmlProblem

protected void reportXmlProblem(java.lang.String msg)
                         throws WstxException
Throws:
WstxException

reportUnexpectedChar

protected void reportUnexpectedChar(int i,
                                    java.lang.String msg)
                             throws WstxException
Throws:
WstxException