Class AbstractXMLEventParser
- java.lang.Object
-
- gov.nasa.worldwind.util.xml.AbstractXMLEventParser
-
- All Implemented Interfaces:
XMLEventParser
- Direct Known Subclasses:
AngleXMLEventParser
,AtomAbstractObject
,AttributesOnlyXMLEventParser
,BooleanIntegerXMLEventParser
,BooleanXMLEventParser
,ColladaAbstractObject
,DoubleXMLEventParser
,GMLEnvelope
,GMLGrid
,GMLGridEnvelope
,GMLLimits
,GMLOrigin
,GMLPos
,IntegerXMLEventParser
,KMLAbstractEventParser
,KMLAbstractObject
,KMLChange
,KMLCoordinatesParser
,KMLCreate
,KMLDelete
,KMLNetworkLinkControl
,KMLSchema
,KMLSimpleData
,KMLSimpleField
,OGCAddress
,OGCBoundingBox
,OGCCapabilities
,OGCCapabilityInformation
,OGCContactInformation
,OGCDCType
,OGCOnlineResource
,OGCRequestDescription
,OGCServiceInformation
,OWSAddress
,OWSAllowedValues
,OWSCapabilities
,OWSConstraint
,OWSContactInfo
,OWSDCP
,OWSHTTP
,OWSOperation
,OWSOperationsMetadata
,OWSParameter
,OWSPhone
,OWSServiceContact
,OWSServiceIdentification
,OWSServiceProvider
,OWSWGS84BoundingBox
,RasterServerConfiguration
,RasterServerConfiguration.Corner
,RasterServerConfiguration.Property
,RasterServerConfiguration.RasterSector
,RasterServerConfiguration.Source
,RasterServerConfiguration.Sources
,StringListXMLEventParser
,StringSetXMLEventParser
,StringXMLEventParser
,UnrecognizedXMLEventParser
,WCS100AxisDescription
,WCS100AxisDescriptionHolder
,WCS100Capabilities
,WCS100Capability
,WCS100ContentMetadata
,WCS100CoverageOfferingBrief
,WCS100DCPType
,WCS100DescribeCoverage
,WCS100DomainSet
,WCS100Exception
,WCS100HTTP
,WCS100Interval
,WCS100LonLatEnvelope
,WCS100Max
,WCS100MetadataLink
,WCS100Min
,WCS100RangeSet
,WCS100RangeSetHolder
,WCS100Request
,WCS100RequestDescription
,WCS100ResponsibleParty
,WCS100Service
,WCS100SingleValue
,WCS100SpatialDomain
,WCS100SupportedCRSs
,WCS100Values
,WCSContents
,WCSCoverageSummary
,WMSLayerAttribution
,WMSLayerCapabilities
,WMSLayerDimension
,WMSLayerExtent
,WMSLayerIdentifier
,WMSLayerInfoURL
,WMSLayerStyle
,XALAbstractObject
public abstract class AbstractXMLEventParser extends java.lang.Object implements XMLEventParser
Base class for XML event parsers. Handles parsing control and creation of new parser instances.A parser holds the information parsed from the event stream. That information can be queried via the parser's accessors. A parser typically does not maintain a reference to the event stream it parsed or the parser context used during parsing.
Parsers are created when events of the associated type are encountered in the input stream. An
allocate(XMLEventParserContext, javax.xml.stream.events.XMLEvent)
method in the parser typically creates a default parser prior to consulting theXMLEventParserContext
, which returns a new parser whose type is determined by consulting a table of event types. The default parser is returned if the table contains no entry for the event type.A parser can be associated with a specific namespace. The namespace is used to qualify the parser's association with event types.
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.String
CHARACTERS_CONTENT
protected AVList
fields
protected java.lang.String
namespaceURI
protected XMLEventParser
parent
-
Constructor Summary
Constructors Constructor Description AbstractXMLEventParser()
Construct a parser with no qualifying namespace.AbstractXMLEventParser(java.lang.String namespaceURI)
Constructs a parser and qualifies it for a specified namespace.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description XMLEventParser
allocate(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event)
Create a parser for a specified event.protected void
doAddCharacters(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args)
protected void
doAddEventAttribute(javax.xml.stream.events.Attribute attr, XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args)
protected void
doAddEventContent(java.lang.Object o, XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args)
protected void
doParseEventAttributes(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args)
Parse an event's attributes.protected void
doParseEventContent(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args)
Parse an event's sub-elements.void
freeResources()
Release large resources used by the parser, but does not dispose of the parser itself.protected java.lang.reflect.Constructor<? extends AbstractXMLEventParser>
getAConstructor(java.lang.Class... parameterTypes)
java.lang.String
getCharacters()
java.lang.Object
getField(java.lang.String keyName)
java.lang.Object
getField(javax.xml.namespace.QName keyName)
AVList
getFields()
java.lang.String
getNamespaceURI()
Returns the qualifying namespace URI specified at construction.XMLEventParser
getParent()
Returns this parser's parent parser.XMLEventParser
getRoot()
boolean
hasField(java.lang.String keyName)
boolean
hasField(javax.xml.namespace.QName keyName)
boolean
hasFields()
protected AbstractXMLEventParser
mergeFields(AbstractXMLEventParser s1, AbstractXMLEventParser s2)
XMLEventParser
newInstance()
Creates a new empty parser instance of the same type.protected AbstractXMLEventParser
overrideFields(AbstractXMLEventParser s1, AbstractXMLEventParser s2)
java.lang.Object
parse(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent inputEvent, java.lang.Object... args)
Parse the event and initialize the parser's values to those found in the event.protected java.lang.String
parseCharacterContent(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent stringEvent, java.lang.Object... args)
void
removeField(java.lang.String keyName)
void
setField(java.lang.String keyName, java.lang.Object value)
void
setField(javax.xml.namespace.QName keyName, java.lang.Object value)
void
setFields(java.util.Map<java.lang.String,java.lang.Object> newFields)
protected void
setNamespaceURI(java.lang.String namespaceURI)
void
setParent(XMLEventParser parent)
Specifies the parent parser of this parser.
-
-
-
Field Detail
-
CHARACTERS_CONTENT
protected static final java.lang.String CHARACTERS_CONTENT
- See Also:
- Constant Field Values
-
namespaceURI
protected java.lang.String namespaceURI
-
fields
protected AVList fields
-
parent
protected XMLEventParser parent
-
-
Constructor Detail
-
AbstractXMLEventParser
public AbstractXMLEventParser()
Construct a parser with no qualifying namespace.
-
AbstractXMLEventParser
public AbstractXMLEventParser(java.lang.String namespaceURI)
Constructs a parser and qualifies it for a specified namespace.- Parameters:
namespaceURI
- the qualifying namespace URI. May be null to indicate no namespace qualification.
-
-
Method Detail
-
getNamespaceURI
public java.lang.String getNamespaceURI()
Returns the qualifying namespace URI specified at construction.- Returns:
- the namespace URI. Returns null if no name space was specified at construction.
-
setNamespaceURI
protected void setNamespaceURI(java.lang.String namespaceURI)
-
newInstance
public XMLEventParser newInstance() throws java.lang.Exception
Description copied from interface:XMLEventParser
Creates a new empty parser instance of the same type. This is used byXMLEventParserContext
when creating parsers associated with specific event types. The returned parser has the same namespace as the instance creating it, but has empty fields for all other values.- Specified by:
newInstance
in interfaceXMLEventParser
- Returns:
- a new parser instance. The namespace URI is the same as the creating parser, but all other fields are empty.
- Throws:
java.lang.Exception
- if an error or exception occurs while attempting to create the parser.
-
setField
public void setField(javax.xml.namespace.QName keyName, java.lang.Object value)
-
setField
public void setField(java.lang.String keyName, java.lang.Object value)
-
setFields
public void setFields(java.util.Map<java.lang.String,java.lang.Object> newFields)
-
getField
public java.lang.Object getField(javax.xml.namespace.QName keyName)
-
getField
public java.lang.Object getField(java.lang.String keyName)
-
hasField
public boolean hasField(javax.xml.namespace.QName keyName)
-
hasField
public boolean hasField(java.lang.String keyName)
-
removeField
public void removeField(java.lang.String keyName)
-
hasFields
public boolean hasFields()
-
getFields
public AVList getFields()
-
mergeFields
protected AbstractXMLEventParser mergeFields(AbstractXMLEventParser s1, AbstractXMLEventParser s2)
-
overrideFields
protected AbstractXMLEventParser overrideFields(AbstractXMLEventParser s1, AbstractXMLEventParser s2)
-
getParent
public XMLEventParser getParent()
Description copied from interface:XMLEventParser
Returns this parser's parent parser.- Specified by:
getParent
in interfaceXMLEventParser
- Returns:
- this parser's parent parser.
-
setParent
public void setParent(XMLEventParser parent)
Description copied from interface:XMLEventParser
Specifies the parent parser of this parser.- Specified by:
setParent
in interfaceXMLEventParser
- Parameters:
parent
- this parser's parent parser.
-
freeResources
public void freeResources()
Description copied from interface:XMLEventParser
Release large resources used by the parser, but does not dispose of the parser itself. Call this method once its data is no longer needed, such as after mappings and related representations are created. For example, if a parser holds a large number of positions, and those positions are no longer needed after the positions are converted to points or copied to other storage, this method releases the memory associated with the original positions.- Specified by:
freeResources
in interfaceXMLEventParser
-
getAConstructor
protected java.lang.reflect.Constructor<? extends AbstractXMLEventParser> getAConstructor(java.lang.Class... parameterTypes)
-
getRoot
public XMLEventParser getRoot()
-
allocate
public XMLEventParser allocate(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event)
Create a parser for a specified event.- Parameters:
ctx
- the current parser context.event
- the event for which the parser is created. Only the event type is used; the new parser can operate on any event of that type.- Returns:
- the new parser.
-
parse
public java.lang.Object parse(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent inputEvent, java.lang.Object... args) throws javax.xml.stream.XMLStreamException
Parse the event and initialize the parser's values to those found in the event.- Specified by:
parse
in interfaceXMLEventParser
- Parameters:
ctx
- a current parser context.inputEvent
- the event to parse.args
- an optional list of arguments that may by used by subclasses.- Returns:
- if parsing is successful, returns
this
, otherwise returns null. - Throws:
javax.xml.stream.XMLStreamException
- if an exception occurs during event-stream reading.
-
doAddCharacters
protected void doAddCharacters(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args)
-
getCharacters
public java.lang.String getCharacters()
-
doParseEventContent
protected void doParseEventContent(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args) throws javax.xml.stream.XMLStreamException
Parse an event's sub-elements.- Parameters:
ctx
- a current parser context.event
- the event to parse.args
- an optional list of arguments that may by used by subclasses.- Throws:
javax.xml.stream.XMLStreamException
- if an exception occurs during event-stream reading.
-
doAddEventContent
protected void doAddEventContent(java.lang.Object o, XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args) throws javax.xml.stream.XMLStreamException
- Throws:
javax.xml.stream.XMLStreamException
-
doParseEventAttributes
protected void doParseEventAttributes(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args) throws javax.xml.stream.XMLStreamException
Parse an event's attributes.- Parameters:
ctx
- a current parser context.event
- the event to parse.args
- an optional list of arguments that may by used by subclasses.- Throws:
javax.xml.stream.XMLStreamException
- if an exception occurs during event-stream reading.
-
doAddEventAttribute
protected void doAddEventAttribute(javax.xml.stream.events.Attribute attr, XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args) throws javax.xml.stream.XMLStreamException
- Throws:
javax.xml.stream.XMLStreamException
-
parseCharacterContent
protected java.lang.String parseCharacterContent(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent stringEvent, java.lang.Object... args) throws javax.xml.stream.XMLStreamException
- Throws:
javax.xml.stream.XMLStreamException
-
-