Package com.fasterxml.aalto.in
Class ReaderConfig
- java.lang.Object
-
- com.fasterxml.aalto.impl.CommonConfig
-
- com.fasterxml.aalto.in.ReaderConfig
-
public final class ReaderConfig extends CommonConfig
This is the shared configuration object passed by the factory to reader, and by reader to whoever needs it (scanners at least).
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classReaderConfig.EncodingContextThis is a simple container class that is used to encapsulate per-factory encoding-dependant information like symbol tables.
-
Field Summary
Fields Modifier and Type Field Description protected BufferRecycler_currRecyclerThis is the actually container of the recyclable buffers.(package private) static java.lang.ThreadLocal<java.lang.ref.SoftReference<BufferRecycler>>_recyclerRefThisThreadLocalcontains aSoftRerefenceto aBufferRecyclerused to provide a low-cost buffer recycling between Reader instances.static intDEFAULT_CHAR_BUFFER_LENprotected static intDEFAULT_FLAGSThese are the default settings for XMLInputFactory.static intDEFAULT_SMALL_BUFFER_LENprotected static intF_AUTO_CLOSE_INPUTprotected static intF_COALESCINGprotected static intF_DTD_AWAREprotected static intF_DTD_VALIDATINGprotected static intF_EXPAND_ENTITIESprotected static intF_INTERN_NAMESprotected static intF_INTERN_NS_URISprotected static intF_LAZY_PARSINGprotected static intF_NS_AWAREprotected static intF_PRESERVE_LOCATIONprotected static intF_REPORT_CDATAprotected static intF_RETAIN_ATTRIBUTE_GENERAL_ENTITIESprivate IllegalCharHandlerillegalCharHandlerprivate java.lang.StringmActualEncodingName of the actual encoding that input was found to be in (if any -- can't be determined if a Reader was passed in).private UriCanonicalizermCanonicalizerFor efficient access by qualified name, as well as uniqueness checks, namespace URIs need to be canonicalized.private ReaderConfig.EncodingContextmEncCtxtA single encoding context instance is shared between all ReaderConfig instances created for readers by an input factory.private java.lang.StringmExtEncodingEncoding passed in as external information, possibly from source from which xml content was gained from (for example, as an HTTP header, or file metadata).private java.lang.StringmPublicIdprivate javax.xml.stream.XMLReportermReporterprivate javax.xml.stream.XMLResolvermResolverprivate java.lang.StringmSystemIdprivate java.lang.StringmXmlDeclEncodingprivate intmXmlDeclStandaloneprivate java.lang.StringmXmlDeclVersionprivate static java.util.HashMap<java.lang.String,java.lang.Object>sPropertiesstatic intSTANDALONE_NOstatic intSTANDALONE_UNKNOWNstatic intSTANDALONE_YES-
Fields inherited from class com.fasterxml.aalto.impl.CommonConfig
_flagMods, _flags, IMPL_NAME, IMPL_VERSION
-
-
Constructor Summary
Constructors Modifier Constructor Description ReaderConfig()privateReaderConfig(java.lang.String publicId, java.lang.String systemId, java.lang.String extEnc, ReaderConfig.EncodingContext encCtxt, int flags, int flagMods, javax.xml.stream.XMLReporter rep, javax.xml.stream.XMLResolver res, UriCanonicalizer canonicalizer)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description byte[]allocFullBBuffer(int minSize)char[]allocFullCBuffer(int minSize)char[]allocMediumCBuffer(int minSize)char[]allocSmallCBuffer(int minSize)java.lang.StringcanonicalizeURI(char[] buf, int uriLen)voidconfigureForConvenience()Method to call to make Reader created be as "convenient" to use as possible; ie try to avoid having to deal with some of things like segmented text chunks.voidconfigureForLowMemUsage()Method to call to minimize the memory usage of the stream/event reader; both regarding Objects created, and the temporary memory usage during parsing.voidconfigureForRoundTripping()Method to call to make Reader try to preserve as much of input formatting as possible, so that round-tripping would be as lossless as possible.voidconfigureForSpeed()Method to call to make the Reader created be as fast as possible reading documents, especially for long-running processes where caching is likely to help.voidconfigureForXmlConformance()Method to call to make Reader created conform as closely to XML standard as possible, doing all checks and transformations mandated (linefeed conversions, attr value normalizations).ReaderConfigcreateNonShared(java.lang.String publicId, java.lang.String systemId, java.lang.String extEnc)private BufferRecyclercreateRecycler()voiddoAutoCloseInput(boolean state)voiddoCoalesceText(boolean state)voiddoParseLazily(boolean state)voiddoPreserveLocation(boolean state)voiddoReportCData(boolean state)voiddoRetainAttributeGeneralEntities(boolean state)Method for enabling or disablingAaltoInputProperties.P_RETAIN_ATTRIBUTE_GENERAL_ENTITIES.protected intfindPropertyId(java.lang.String propName)voidfreeFullBBuffer(byte[] buffer)voidfreeFullCBuffer(char[] buffer)voidfreeMediumCBuffer(char[] buffer)voidfreeSmallCBuffer(char[] buffer)java.lang.StringgetActualEncoding()ByteBasedPNameTablegetBBSymbols()CharBasedPNameTablegetCBSymbols()XmlCharTypesgetCharTypes()java.lang.StringgetExternalEncoding()This method returns name of encoding that has been passed explicitly to the reader or writer, from outside.IllegalCharHandlergetIllegalCharHandler()java.lang.ObjectgetProperty(java.lang.String name, boolean isMandatory)java.lang.StringgetPublicId()java.lang.StringgetSystemId()java.lang.StringgetXmlDeclEncoding()intgetXmlDeclStandalone()java.lang.StringgetXmlDeclVersion()javax.xml.stream.XMLReportergetXMLReporter()javax.xml.stream.XMLResolvergetXMLResolver()booleanhasInternNamesBeenEnabled()booleanhasInternNsURIsBeenEnabled()booleanisPropertySupported(java.lang.String propName)booleanisXml11()voidsetActualEncoding(java.lang.String actualEnc)voidsetIllegalCharHandler(IllegalCharHandler illegalCharHandler)booleansetProperty(java.lang.String name, java.lang.Object value)voidsetXmlDeclInfo(int version, java.lang.String xmlDeclEnc, java.lang.String standalone)voidsetXmlEncoding(java.lang.String enc)voidsetXMLReporter(javax.xml.stream.XMLReporter r)voidsetXMLResolver(javax.xml.stream.XMLResolver r)voidsetXmlStandalone(java.lang.Boolean b)voidsetXmlVersion(java.lang.String version)voidupdateBBSymbols(ByteBasedPNameTable sym)voidupdateCBSymbols(CharBasedPNameTable sym)booleanwillAutoCloseInput()booleanwillCoalesceText()booleanwillExpandEntities()booleanwillInternNames()booleanwillInternNsURIs()booleanwillParseLazily()booleanwillPreserveLocation()booleanwillReportCData()booleanwillRetainAttributeGeneralEntities()Accessor for checking configured state ofAaltoInputProperties.P_RETAIN_ATTRIBUTE_GENERAL_ENTITIES.booleanwillSupportNamespaces()-
Methods inherited from class com.fasterxml.aalto.impl.CommonConfig
hasExplicitFlag, hasFlag, hasFlagBeenModified, setFlag
-
-
-
-
Field Detail
-
DEFAULT_SMALL_BUFFER_LEN
public static final int DEFAULT_SMALL_BUFFER_LEN
- See Also:
- Constant Field Values
-
DEFAULT_CHAR_BUFFER_LEN
public static final int DEFAULT_CHAR_BUFFER_LEN
- See Also:
- Constant Field Values
-
STANDALONE_UNKNOWN
public static final int STANDALONE_UNKNOWN
- See Also:
- Constant Field Values
-
STANDALONE_YES
public static final int STANDALONE_YES
- See Also:
- Constant Field Values
-
STANDALONE_NO
public static final int STANDALONE_NO
- See Also:
- Constant Field Values
-
F_NS_AWARE
protected static final int F_NS_AWARE
- See Also:
- Constant Field Values
-
F_COALESCING
protected static final int F_COALESCING
- See Also:
- Constant Field Values
-
F_DTD_AWARE
protected static final int F_DTD_AWARE
- See Also:
- Constant Field Values
-
F_DTD_VALIDATING
protected static final int F_DTD_VALIDATING
- See Also:
- Constant Field Values
-
F_EXPAND_ENTITIES
protected static final int F_EXPAND_ENTITIES
- See Also:
- Constant Field Values
-
F_LAZY_PARSING
protected static final int F_LAZY_PARSING
- See Also:
- Constant Field Values
-
F_INTERN_NAMES
protected static final int F_INTERN_NAMES
- See Also:
- Constant Field Values
-
F_INTERN_NS_URIS
protected static final int F_INTERN_NS_URIS
- See Also:
- Constant Field Values
-
F_REPORT_CDATA
protected static final int F_REPORT_CDATA
- See Also:
- Constant Field Values
-
F_PRESERVE_LOCATION
protected static final int F_PRESERVE_LOCATION
- See Also:
- Constant Field Values
-
F_AUTO_CLOSE_INPUT
protected static final int F_AUTO_CLOSE_INPUT
- See Also:
- Constant Field Values
-
F_RETAIN_ATTRIBUTE_GENERAL_ENTITIES
protected static final int F_RETAIN_ATTRIBUTE_GENERAL_ENTITIES
- See Also:
- Constant Field Values
-
DEFAULT_FLAGS
protected static final int DEFAULT_FLAGS
These are the default settings for XMLInputFactory.- See Also:
- Constant Field Values
-
sProperties
private static final java.util.HashMap<java.lang.String,java.lang.Object> sProperties
-
mEncCtxt
private final ReaderConfig.EncodingContext mEncCtxt
A single encoding context instance is shared between all ReaderConfig instances created for readers by an input factory. It is used for sharing symbol tables.
-
mCanonicalizer
private final UriCanonicalizer mCanonicalizer
For efficient access by qualified name, as well as uniqueness checks, namespace URIs need to be canonicalized.
-
mPublicId
private final java.lang.String mPublicId
-
mSystemId
private final java.lang.String mSystemId
-
mExtEncoding
private final java.lang.String mExtEncoding
Encoding passed in as external information, possibly from source from which xml content was gained from (for example, as an HTTP header, or file metadata).
-
mActualEncoding
private java.lang.String mActualEncoding
Name of the actual encoding that input was found to be in (if any -- can't be determined if a Reader was passed in).
-
mXmlDeclVersion
private java.lang.String mXmlDeclVersion
-
mXmlDeclEncoding
private java.lang.String mXmlDeclEncoding
-
mXmlDeclStandalone
private int mXmlDeclStandalone
-
mReporter
private javax.xml.stream.XMLReporter mReporter
-
mResolver
private javax.xml.stream.XMLResolver mResolver
-
illegalCharHandler
private IllegalCharHandler illegalCharHandler
-
_recyclerRef
static final java.lang.ThreadLocal<java.lang.ref.SoftReference<BufferRecycler>> _recyclerRef
ThisThreadLocalcontains aSoftRerefenceto aBufferRecyclerused to provide a low-cost buffer recycling between Reader instances.
-
_currRecycler
protected BufferRecycler _currRecycler
This is the actually container of the recyclable buffers. It is obtained via ThreadLocal/SoftReference combination, if one exists, when Config instance is created. If one does not exist, it will created first time a buffer is returned.
-
-
Constructor Detail
-
ReaderConfig
private ReaderConfig(java.lang.String publicId, java.lang.String systemId, java.lang.String extEnc, ReaderConfig.EncodingContext encCtxt, int flags, int flagMods, javax.xml.stream.XMLReporter rep, javax.xml.stream.XMLResolver res, UriCanonicalizer canonicalizer)
-
ReaderConfig
public ReaderConfig()
-
-
Method Detail
-
setActualEncoding
public void setActualEncoding(java.lang.String actualEnc)
-
setXmlDeclInfo
public void setXmlDeclInfo(int version, java.lang.String xmlDeclEnc, java.lang.String standalone)
-
setXmlVersion
public final void setXmlVersion(java.lang.String version)
-
setXmlEncoding
public final void setXmlEncoding(java.lang.String enc)
-
setXmlStandalone
public final void setXmlStandalone(java.lang.Boolean b)
-
setXMLReporter
public void setXMLReporter(javax.xml.stream.XMLReporter r)
-
setXMLResolver
public void setXMLResolver(javax.xml.stream.XMLResolver r)
-
doCoalesceText
public void doCoalesceText(boolean state)
-
doAutoCloseInput
public void doAutoCloseInput(boolean state)
-
doPreserveLocation
public void doPreserveLocation(boolean state)
-
doParseLazily
public void doParseLazily(boolean state)
-
doReportCData
public void doReportCData(boolean state)
-
doRetainAttributeGeneralEntities
public void doRetainAttributeGeneralEntities(boolean state)
Method for enabling or disablingAaltoInputProperties.P_RETAIN_ATTRIBUTE_GENERAL_ENTITIES.- Parameters:
state- Whether to enable or disable property- Since:
- 1.3
-
createNonShared
public ReaderConfig createNonShared(java.lang.String publicId, java.lang.String systemId, java.lang.String extEnc)
-
getExternalEncoding
public java.lang.String getExternalEncoding()
Description copied from class:CommonConfigThis method returns name of encoding that has been passed explicitly to the reader or writer, from outside. An example is that HTTP server may pass encoding as declared in HTTP headers. This should either be null (if none passed), or the same as actual encoding (which is determined from physical stream contents [for readers], or from encoder properties / configuration [for writers]- Specified by:
getExternalEncodingin classCommonConfig- Returns:
- Encoding that has been passed externally by the application
-
getActualEncoding
public java.lang.String getActualEncoding()
- Specified by:
getActualEncodingin classCommonConfig- Returns:
- Actual encoding in use, as determined by the processor.
-
isXml11
public boolean isXml11()
- Specified by:
isXml11in classCommonConfig- Returns:
- True, if the processing will be done according to Xml 1.1 rules; false if according to xml 1.0
-
findPropertyId
protected int findPropertyId(java.lang.String propName)
-
getProperty
public final java.lang.Object getProperty(java.lang.String name, boolean isMandatory)- Overrides:
getPropertyin classCommonConfigisMandatory- If true, unrecognized property should result inIllegalArgumentException
-
setProperty
public boolean setProperty(java.lang.String name, java.lang.Object value)- Overrides:
setPropertyin classCommonConfig- Returns:
- True, if the specified property was succesfully set to specified value; false if its value was not changed
-
isPropertySupported
public boolean isPropertySupported(java.lang.String propName)
- Overrides:
isPropertySupportedin classCommonConfig
-
getXMLReporter
public javax.xml.stream.XMLReporter getXMLReporter()
-
getXMLResolver
public javax.xml.stream.XMLResolver getXMLResolver()
-
willExpandEntities
public boolean willExpandEntities()
-
willCoalesceText
public boolean willCoalesceText()
-
willSupportNamespaces
public boolean willSupportNamespaces()
-
willParseLazily
public boolean willParseLazily()
-
willInternNames
public boolean willInternNames()
-
willInternNsURIs
public boolean willInternNsURIs()
-
willReportCData
public boolean willReportCData()
-
willPreserveLocation
public boolean willPreserveLocation()
-
willAutoCloseInput
public boolean willAutoCloseInput()
-
hasInternNamesBeenEnabled
public boolean hasInternNamesBeenEnabled()
-
hasInternNsURIsBeenEnabled
public boolean hasInternNsURIsBeenEnabled()
-
willRetainAttributeGeneralEntities
public boolean willRetainAttributeGeneralEntities()
Accessor for checking configured state ofAaltoInputProperties.P_RETAIN_ATTRIBUTE_GENERAL_ENTITIES.- Returns:
- Whether the property is enabled or disabled
- Since:
- 1.3
-
getPublicId
public java.lang.String getPublicId()
-
getSystemId
public java.lang.String getSystemId()
-
getXmlDeclVersion
public java.lang.String getXmlDeclVersion()
-
getXmlDeclEncoding
public java.lang.String getXmlDeclEncoding()
-
getXmlDeclStandalone
public int getXmlDeclStandalone()
-
configureForXmlConformance
public void configureForXmlConformance()
Method to call to make Reader created conform as closely to XML standard as possible, doing all checks and transformations mandated (linefeed conversions, attr value normalizations). SeeXMLInputFactory2.configureForXmlConformance()for required settings for standard StAX/StAX2 properties.Notes: Does NOT change 'performance' settings (buffer sizes, DTD caching, coalescing, interning, accurate location info).
-
configureForConvenience
public void configureForConvenience()
Method to call to make Reader created be as "convenient" to use as possible; ie try to avoid having to deal with some of things like segmented text chunks. This may incur some slight performance penalties, but should not affect XML conformance. SeeXMLInputFactory2.configureForConvenience()for required settings for standard StAX/StAX2 properties.
-
configureForSpeed
public void configureForSpeed()
Method to call to make the Reader created be as fast as possible reading documents, especially for long-running processes where caching is likely to help.See
XMLInputFactory2.configureForSpeed()for required settings for standard StAX/StAX2 properties.
-
configureForLowMemUsage
public void configureForLowMemUsage()
Method to call to minimize the memory usage of the stream/event reader; both regarding Objects created, and the temporary memory usage during parsing. This generally incurs some performance penalties, due to using smaller input buffers.See
XMLInputFactory2.configureForLowMemUsage()for required settings for standard StAX/StAX2 properties.
-
configureForRoundTripping
public void configureForRoundTripping()
Method to call to make Reader try to preserve as much of input formatting as possible, so that round-tripping would be as lossless as possible.See
XMLInputFactory2.configureForLowMemUsage()for required settings for standard StAX/StAX2 properties.
-
canonicalizeURI
public java.lang.String canonicalizeURI(char[] buf, int uriLen)
-
allocSmallCBuffer
public char[] allocSmallCBuffer(int minSize)
-
freeSmallCBuffer
public void freeSmallCBuffer(char[] buffer)
-
allocMediumCBuffer
public char[] allocMediumCBuffer(int minSize)
-
freeMediumCBuffer
public void freeMediumCBuffer(char[] buffer)
-
allocFullCBuffer
public char[] allocFullCBuffer(int minSize)
-
freeFullCBuffer
public void freeFullCBuffer(char[] buffer)
-
allocFullBBuffer
public byte[] allocFullBBuffer(int minSize)
-
freeFullBBuffer
public void freeFullBBuffer(byte[] buffer)
-
createRecycler
private BufferRecycler createRecycler()
-
getBBSymbols
public ByteBasedPNameTable getBBSymbols()
-
getCBSymbols
public CharBasedPNameTable getCBSymbols()
-
updateBBSymbols
public void updateBBSymbols(ByteBasedPNameTable sym)
-
updateCBSymbols
public void updateCBSymbols(CharBasedPNameTable sym)
-
getCharTypes
public XmlCharTypes getCharTypes()
-
setIllegalCharHandler
public void setIllegalCharHandler(IllegalCharHandler illegalCharHandler)
-
getIllegalCharHandler
public IllegalCharHandler getIllegalCharHandler()
-
-