Class XmlParserSession
- Direct Known Subclasses:
HtmlParserSession
XmlParser
.
Notes:
- This class is not thread safe and is typically discarded after one use.
See Also:
-
Nested Class Summary
-
Constructor Summary
ModifierConstructorDescriptionprotected
XmlParserSession
(XmlParserSession.Builder builder) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionstatic XmlParserSession.Builder
Creates a new builder for this object.protected final String
Decodes and trims the specified string.protected <T> T
doParse
(ParserPipe pipe, ClassMeta<T> type) Workhorse method.protected <E> Collection<E>
doParseIntoCollection
(ParserPipe pipe, Collection<E> c, Type elementType) Implementation method.protected <K,
V> Map<K, V> doParseIntoMap
(ParserPipe pipe, Map<K, V> m, Type keyType, Type valueType) Implementation method.protected String
Returns the text content of the current XML element.protected final XMLEventAllocator
XML event allocator.protected final XMLReporter
XML reporter.protected final XMLResolver
XML resolver.protected XmlBeanMeta
getXmlBeanMeta
(BeanMeta<?> bm) Returns the language-specific metadata on the specified bean.protected XmlBeanPropertyMeta
Returns the language-specific metadata on the specified bean property.protected XmlClassMeta
getXmlClassMeta
(ClassMeta<?> cm) Returns the language-specific metadata on the specified class.protected final XmlReader
getXmlReader
(ParserPipe pipe) Wrap the specified reader in a STAX reader based on settings in this context.protected final boolean
Preserve root element during generalized parsing.protected final boolean
Enable validation.protected boolean
Returnstrue if the current element is a whitespace element.protected <T> T
parseAnything
(ClassMeta<T> eType, String currAttr, XmlReader r, Object outer, boolean isRoot, BeanPropertyMeta pMeta) Workhorse method.protected String
Parses the current element as text.protected String
Parses the current whitespace element.Methods inherited from class org.apache.juneau.parser.ReaderParserSession
create, createPipe, getFileCharset, getStreamCharset, isReaderParser, properties
Methods inherited from class org.apache.juneau.parser.ParserSession
cast, convertAttrToType, create, getClassMeta, getDebugOutputLines, getInputAsString, getJavaMethod, getLastLocation, getListener, getListener, getListenerClass, getOuter, getPosition, getSchema, getStringBuilder, isAutoCloseStreams, isStrict, isTrimStrings, isUnbuffered, mark, onBeanSetterException, onUnknownProperty, parse, parse, parse, parse, parse, parse, parseArgs, parseIntoCollection, parseIntoMap, returnStringBuilder, setCurrentClass, setCurrentProperty, setName, setParent, setPipe, trim, trim, unmark, unswap
Methods inherited from class org.apache.juneau.BeanSession
_class, addWarning, convertToMemberType, convertToMemberType, convertToType, convertToType, convertToType, create, getArgsClassMeta, getBeanClassVisibility, getBeanConstructorVisibility, getBeanDictionary, getBeanFieldVisibility, getBeanMeta, getBeanMethodVisibility, getBeanRegistry, getBeanTypePropertyName, getBeanTypePropertyName, getClassMeta, getClassMeta, getClassMetaForObject, getClassMetaForObject, getLocale, getMediaType, getNamePropertyName, getNotBeanClasses, getNotBeanPackagesNames, getNotBeanPackagesPrefixes, getPropertyNamer, getSwaps, getTimeZone, getTimeZoneId, isBean, isBean, isBeanMapPutReturnsOldValue, isBeansRequireDefaultConstructor, isBeansRequireSerializable, isBeansRequireSettersForGetters, isBeansRequireSomeProperties, isFindFluentSetters, isIgnoreInvocationExceptionsOnGetters, isIgnoreInvocationExceptionsOnSetters, isIgnoreMissingSetters, isIgnoreUnknownBeanProperties, isIgnoreUnknownNullBeanProperties, isSortProperties, isUseEnumNames, isUseInterfaceProxies, isUseJavaBeanIntrospector, newBean, newBean, newBeanMap, newBeanMap, newGenericMap, object, string, toArray, toBeanMap, toBeanMap, toBeanMap
Methods inherited from class org.apache.juneau.ContextSession
checkForWarnings, getContext, getSessionProperties, getWarnings, isDebug, toString
-
Constructor Details
-
XmlParserSession
Constructor.- Parameters:
builder
- The builder for this object.
-
-
Method Details
-
create
Creates a new builder for this object.- Parameters:
ctx
- The context creating this session.- Returns:
- A new builder.
-
getXmlReader
Wrap the specified reader in a STAX reader based on settings in this context.- Parameters:
pipe
- The parser input.- Returns:
- The new STAX reader.
- Throws:
IOException
- Thrown by underlying stream.XMLStreamException
- Unexpected XML processing error.
-
decodeString
Decodes and trims the specified string.Any
'_x####_' sequences in the string will be decoded.- Parameters:
s
- The string to be decoded.- Returns:
- The decoded string.
-
getElementText
Returns the text content of the current XML element.Any
'_x####_' sequences in the string will be decoded.Leading and trailing whitespace (unencoded) will be trimmed from the result.
- Parameters:
r
- The reader to read the element text from.- Returns:
- The decoded text.
null if the text consists of the sequence'_x0000_' . - Throws:
XMLStreamException
- Thrown by underlying reader.IOException
- Thrown by underlying stream.ParseException
- Malformed input encountered.
-
parseText
Parses the current element as text.- Parameters:
r
- The input reader.- Returns:
- The parsed text.
- Throws:
XMLStreamException
- Thrown by underlying reader.IOException
- Thrown by underlying stream.ParseException
- Malformed input encountered.
-
isWhitespaceElement
Returnstrue if the current element is a whitespace element.For the XML parser, this always returns
false . However, the HTML parser defines various whitespace elements such as"br" and"sp" .- Parameters:
r
- The XML stream reader to read the current event from.- Returns:
true if the current element is a whitespace element.
-
parseWhitespaceElement
protected String parseWhitespaceElement(XmlReader r) throws IOException, XMLStreamException, ParseException Parses the current whitespace element.For the XML parser, this always returns
null since there is no concept of a whitespace element. However, the HTML parser defines various whitespace elements such as"br" and"sp" .- Parameters:
r
- The XML stream reader to read the current event from.- Returns:
- The whitespace character or characters.
- Throws:
XMLStreamException
- Thrown by underlying reader.IOException
- Thrown by underlying stream.ParseException
- Malformed input encountered.
-
doParse
protected <T> T doParse(ParserPipe pipe, ClassMeta<T> type) throws IOException, ParseException, ExecutableException Description copied from class:ParserSession
Workhorse method.Subclasses are expected to implement this method or
Parser.doParse(ParserSession,ParserPipe,ClassMeta)
.The default implementation of this method simply calls
Parser.doParse(ParserSession,ParserPipe,ClassMeta)
.- Overrides:
doParse
in classParserSession
- Type Parameters:
T
- The class type of the object to create.- Parameters:
pipe
- Where to get the input from.type
- The class type of the object to create. Ifnull orObject.
, object type is based on what's being parsed. For example, when parsing JSON text, it may return aclass String ,Number ,JsonMap , etc...- Returns:
- The parsed object.
- Throws:
IOException
- Thrown by underlying stream.ParseException
- Malformed input encountered.ExecutableException
- Exception occurred on invoked constructor/method/field.
-
doParseIntoMap
protected <K,V> Map<K,V> doParseIntoMap(ParserPipe pipe, Map<K, V> m, Type keyType, Type valueType) throws ExceptionDescription copied from class:ParserSession
Implementation method.Default implementation throws an
UnsupportedOperationException
.- Overrides:
doParseIntoMap
in classParserSession
- Type Parameters:
K
- The key type.V
- The value type.- Parameters:
pipe
- The parser input.m
- The map being loaded.keyType
- The class type of the keys, ornull to default toString.
.class valueType
- The class type of the values, ornull to default to whatever is being parsed.- Returns:
- The same map that was passed in to allow this method to be chained.
- Throws:
Exception
- If thrown from underlying stream, or if the input contains a syntax error or is malformed.
-
doParseIntoCollection
protected <E> Collection<E> doParseIntoCollection(ParserPipe pipe, Collection<E> c, Type elementType) throws Exception Description copied from class:ParserSession
Implementation method.Default implementation throws an
UnsupportedOperationException
.- Overrides:
doParseIntoCollection
in classParserSession
- Type Parameters:
E
- The element type.- Parameters:
pipe
- The parser input.c
- The collection being loaded.elementType
- The class type of the elements, ornull to default to whatever is being parsed.- Returns:
- The same collection that was passed in to allow this method to be chained.
- Throws:
Exception
- If thrown from underlying stream, or if the input contains a syntax error or is malformed.
-
parseAnything
protected <T> T parseAnything(ClassMeta<T> eType, String currAttr, XmlReader r, Object outer, boolean isRoot, BeanPropertyMeta pMeta) throws IOException, ParseException, ExecutableException, XMLStreamException Workhorse method.- Type Parameters:
T
- The expected type of object.- Parameters:
eType
- The expected type of object.currAttr
- The current bean property name.r
- The reader.outer
- The outer object.isRoot
- Iftrue , then we're serializing a root element in the document.pMeta
- The bean property metadata.- Returns:
- The parsed object.
- Throws:
IOException
- Thrown by underlying stream.ParseException
- Malformed input encountered.ExecutableException
- Exception occurred on invoked constructor/method/field.XMLStreamException
- Malformed XML encountered.
-
getEventAllocator
XML event allocator.- Returns:
- The
XMLEventAllocator
associated with this parser, ornull if there isn't one. - See Also:
-
isPreserveRootElement
Preserve root element during generalized parsing.- Returns:
true if when parsing into a genericJsonMap
, the map will contain a single entry whose key is the root element name.- See Also:
-
getReporter
XML reporter.- Returns:
- The
XMLReporter
associated with this parser, ornull if there isn't one. - See Also:
-
getResolver
XML resolver.- Returns:
- The
XMLResolver
associated with this parser, ornull if there isn't one. - See Also:
-
isValidating
Enable validation.- Returns:
true if XML document will be validated.- See Also:
-
getXmlClassMeta
Returns the language-specific metadata on the specified class.- Parameters:
cm
- The class to return the metadata on.- Returns:
- The metadata.
-
getXmlBeanMeta
Returns the language-specific metadata on the specified bean.- Parameters:
bm
- The bean to return the metadata on.- Returns:
- The metadata.
-
getXmlBeanPropertyMeta
Returns the language-specific metadata on the specified bean property.- Parameters:
bpm
- The bean property to return the metadata on.- Returns:
- The metadata.
-