Package com.ctc.wstx.io
Class InputBootstrapper
- java.lang.Object
-
- com.ctc.wstx.io.InputBootstrapper
-
- Direct Known Subclasses:
ReaderBootstrapper,StreamBootstrapper
public abstract class InputBootstrapper extends 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
Fields Modifier and Type Field Description static byteBYTE_CRstatic byteBYTE_LFstatic byteBYTE_NULLstatic byteCHAR_CRstatic byteCHAR_LFstatic charCHAR_NELstatic charCHAR_NULLstatic charCHAR_SPACEprotected static StringERR_XMLDECL_END_MARKERprotected static StringERR_XMLDECL_EXP_ATTRVALprotected static StringERR_XMLDECL_EXP_EQprotected static StringERR_XMLDECL_EXP_SPACEprotected static StringERR_XMLDECL_KW_ENCODINGprotected static StringERR_XMLDECL_KW_STANDALONEprotected static StringERR_XMLDECL_KW_VERSIONprotected intmInputProcessedCurrent number of characters that were processed in previous blocks, before contents of current input buffer.protected intmInputRowCurrent row location of current point in input buffer, starting from 1protected intmInputRowStartCurrent index of the first character of the current row in input buffer.protected StringmPublicIdprotected SystemIdmSystemId
-
Constructor Summary
Constructors Modifier Constructor Description protectedInputBootstrapper(String pubId, SystemId sysId)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract ReaderbootstrapInput(ReaderConfig cfg, boolean mainDoc, int xmlVersion)protected abstract intcheckKeyword(String exp)booleandeclaredXml11()StringgetDeclaredEncoding()intgetDeclaredVersion()abstract intgetInputColumn()abstract StringgetInputEncoding()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).intgetInputRow()abstract intgetInputTotal()protected abstract LocationgetLocation()protected abstract intgetNext()protected abstract intgetNextAfterWs(boolean reqWs)StringgetPublicId()StringgetStandalone()SystemIdgetSystemId()protected voidinitFrom(InputBootstrapper src)protected abstract voidpushback()protected abstract intreadQuotedValue(char[] kw, int quoteChar)protected voidreadXmlDecl(boolean isMainDoc, int xmlVersion)protected voidreportNull()protected voidreportUnexpectedChar(int i, String msg)protected voidreportXmlProblem(String msg)
-
-
-
Field Detail
-
ERR_XMLDECL_KW_VERSION
protected static final String ERR_XMLDECL_KW_VERSION
- See Also:
- Constant Field Values
-
ERR_XMLDECL_KW_ENCODING
protected static final String ERR_XMLDECL_KW_ENCODING
- See Also:
- Constant Field Values
-
ERR_XMLDECL_KW_STANDALONE
protected static final String ERR_XMLDECL_KW_STANDALONE
- See Also:
- Constant Field Values
-
ERR_XMLDECL_END_MARKER
protected static final String ERR_XMLDECL_END_MARKER
- See Also:
- Constant Field Values
-
ERR_XMLDECL_EXP_SPACE
protected static final String ERR_XMLDECL_EXP_SPACE
- See Also:
- Constant Field Values
-
ERR_XMLDECL_EXP_EQ
protected static final String ERR_XMLDECL_EXP_EQ
- See Also:
- Constant Field Values
-
ERR_XMLDECL_EXP_ATTRVAL
protected static final 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_NEL
public static final char CHAR_NEL
- 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 String mPublicId
-
mSystemId
protected final SystemId 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.
-
-
Method Detail
-
initFrom
protected void initFrom(InputBootstrapper src)
-
bootstrapInput
public abstract Reader bootstrapInput(ReaderConfig cfg, boolean mainDoc, int xmlVersion) throws IOException, 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:
IOExceptionXMLStreamException
-
getPublicId
public String getPublicId()
-
getSystemId
public SystemId 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 String getStandalone()
-
getDeclaredEncoding
public 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 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 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:
IOExceptionWstxException
-
pushback
protected abstract void pushback()
-
getNext
protected abstract int getNext() throws IOException, WstxException- Throws:
IOExceptionWstxException
-
getNextAfterWs
protected abstract int getNextAfterWs(boolean reqWs) throws IOException, WstxException- Throws:
IOExceptionWstxException
-
checkKeyword
protected abstract int checkKeyword(String exp) throws IOException, WstxException
- Returns:
- First character that does not match expected, if any; CHAR_NULL if match succeeded
- Throws:
IOExceptionWstxException
-
readQuotedValue
protected abstract int readQuotedValue(char[] kw, int quoteChar) throws IOException, WstxException- Throws:
IOExceptionWstxException
-
getLocation
protected abstract Location getLocation()
-
reportNull
protected void reportNull() throws WstxException- Throws:
WstxException
-
reportXmlProblem
protected void reportXmlProblem(String msg) throws WstxException
- Throws:
WstxException
-
reportUnexpectedChar
protected void reportUnexpectedChar(int i, String msg) throws WstxException- Throws:
WstxException
-
-