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.StringCHARACTERS_CONTENTprotected AVListfieldsprotected java.lang.StringnamespaceURIprotected XMLEventParserparent
-
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 XMLEventParserallocate(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event)Create a parser for a specified event.protected voiddoAddCharacters(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args)protected voiddoAddEventAttribute(javax.xml.stream.events.Attribute attr, XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args)protected voiddoAddEventContent(java.lang.Object o, XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args)protected voiddoParseEventAttributes(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args)Parse an event's attributes.protected voiddoParseEventContent(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent event, java.lang.Object... args)Parse an event's sub-elements.voidfreeResources()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.StringgetCharacters()java.lang.ObjectgetField(java.lang.String keyName)java.lang.ObjectgetField(javax.xml.namespace.QName keyName)AVListgetFields()java.lang.StringgetNamespaceURI()Returns the qualifying namespace URI specified at construction.XMLEventParsergetParent()Returns this parser's parent parser.XMLEventParsergetRoot()booleanhasField(java.lang.String keyName)booleanhasField(javax.xml.namespace.QName keyName)booleanhasFields()protected AbstractXMLEventParsermergeFields(AbstractXMLEventParser s1, AbstractXMLEventParser s2)XMLEventParsernewInstance()Creates a new empty parser instance of the same type.protected AbstractXMLEventParseroverrideFields(AbstractXMLEventParser s1, AbstractXMLEventParser s2)java.lang.Objectparse(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.StringparseCharacterContent(XMLEventParserContext ctx, javax.xml.stream.events.XMLEvent stringEvent, java.lang.Object... args)voidremoveField(java.lang.String keyName)voidsetField(java.lang.String keyName, java.lang.Object value)voidsetField(javax.xml.namespace.QName keyName, java.lang.Object value)voidsetFields(java.util.Map<java.lang.String,java.lang.Object> newFields)protected voidsetNamespaceURI(java.lang.String namespaceURI)voidsetParent(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:XMLEventParserCreates a new empty parser instance of the same type. This is used byXMLEventParserContextwhen 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:
newInstancein 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:XMLEventParserReturns this parser's parent parser.- Specified by:
getParentin interfaceXMLEventParser- Returns:
- this parser's parent parser.
-
setParent
public void setParent(XMLEventParser parent)
Description copied from interface:XMLEventParserSpecifies the parent parser of this parser.- Specified by:
setParentin interfaceXMLEventParser- Parameters:
parent- this parser's parent parser.
-
freeResources
public void freeResources()
Description copied from interface:XMLEventParserRelease 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:
freeResourcesin 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:
parsein 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
-
-