Package javanet.staxutils
Class BaseXMLEventWriter
- java.lang.Object
-
- javanet.staxutils.BaseXMLEventWriter
-
- All Implemented Interfaces:
XMLEventConsumer,XMLEventWriter
- Direct Known Subclasses:
StreamEventWriter,XMLStreamEventWriter
public abstract class BaseXMLEventWriter extends Object implements XMLEventWriter
Base class forXMLEventWriterimplementations. This implemenation buffers Attribute and Namespace events as specified in the specification, maintains a stack of NamespaceContext instances based on the events it receives, and repairs any missing namespaces. Subclasses should implement thesendEvent(XMLEvent)method to receive the processed events and perform additional processing.- Version:
- $Revision: 1.9 $
- Author:
- Christian Niles
-
-
Field Summary
Fields Modifier and Type Field Description protected MapattrBuffLinkedHashMap of attribute events sent surrounding the last StartElement.protected booleanclosedWhether this writer has been closed or not.protected XMLEventFactoryfactoryXMLEventFactory used to construct XMLEvent instances.protected StartElementlastStartReference to the last StartElement sent.protected MapnsBuffLinkedHashMap of namespace events sent surrounding the last StartElement.protected ListnsStacklist ofSimpleNamespaceContexts.
-
Constructor Summary
Constructors Modifier Constructor Description protectedBaseXMLEventWriter()protectedBaseXMLEventWriter(XMLEventFactory eventFactory, NamespaceContext nsCtx)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidadd(XMLEvent event)voidadd(XMLEventReader reader)protected voidcacheAttribute(Attribute attr)Adds the specifiedAttributeto the attribute cache.protected voidcacheNamespace(Namespace ns)Adds the providedNamespaceevent to the namespace cache.voidclose()voidflush()NamespaceContextgetNamespaceContext()StringgetPrefix(String nsURI)protected SimpleNamespaceContextpeekNamespaceStack()Returns the activeSimpleNamespaceContextfrom the top of the stack.protected SimpleNamespaceContextpopNamespaceStack()Removes the activeSimpleNamespaceContextfrom the top of the stack.protected SimpleNamespaceContextpushNamespaceStack()Creates a newSimpleNamespaceContextand adds it to the top of the stack.protected abstract voidsendEvent(XMLEvent event)Called by the methods of this class to write the event to the stream.voidsetDefaultNamespace(String nsURI)voidsetNamespaceContext(NamespaceContext root)voidsetPrefix(String prefix, String nsURI)
-
-
-
Field Detail
-
factory
protected XMLEventFactory factory
XMLEventFactory used to construct XMLEvent instances.
-
nsStack
protected List nsStack
list ofSimpleNamespaceContexts.
-
lastStart
protected StartElement lastStart
Reference to the last StartElement sent. This will be null if no StartElement has been sent, or after a non Attribute/Namespace event is received.
-
attrBuff
protected Map attrBuff
LinkedHashMap of attribute events sent surrounding the last StartElement. By using LinkedHashMap, the attributes will stay in the order they were defined.
-
nsBuff
protected Map nsBuff
LinkedHashMap of namespace events sent surrounding the last StartElement. By using LinkedHashMap, the namespaces will stay in the order they were defined.
-
closed
protected boolean closed
Whether this writer has been closed or not.
-
-
Constructor Detail
-
BaseXMLEventWriter
protected BaseXMLEventWriter()
-
BaseXMLEventWriter
protected BaseXMLEventWriter(XMLEventFactory eventFactory, NamespaceContext nsCtx)
-
-
Method Detail
-
flush
public void flush() throws XMLStreamException- Specified by:
flushin interfaceXMLEventWriter- Throws:
XMLStreamException
-
close
public void close() throws XMLStreamException- Specified by:
closein interfaceXMLEventWriter- Throws:
XMLStreamException
-
add
public void add(XMLEvent event) throws XMLStreamException
- Specified by:
addin interfaceXMLEventConsumer- Specified by:
addin interfaceXMLEventWriter- Throws:
XMLStreamException
-
add
public void add(XMLEventReader reader) throws XMLStreamException
- Specified by:
addin interfaceXMLEventWriter- Throws:
XMLStreamException
-
getPrefix
public String getPrefix(String nsURI) throws XMLStreamException
- Specified by:
getPrefixin interfaceXMLEventWriter- Throws:
XMLStreamException
-
setPrefix
public void setPrefix(String prefix, String nsURI) throws XMLStreamException
- Specified by:
setPrefixin interfaceXMLEventWriter- Throws:
XMLStreamException
-
setDefaultNamespace
public void setDefaultNamespace(String nsURI) throws XMLStreamException
- Specified by:
setDefaultNamespacein interfaceXMLEventWriter- Throws:
XMLStreamException
-
setNamespaceContext
public void setNamespaceContext(NamespaceContext root) throws XMLStreamException
- Specified by:
setNamespaceContextin interfaceXMLEventWriter- Throws:
XMLStreamException
-
getNamespaceContext
public NamespaceContext getNamespaceContext()
- Specified by:
getNamespaceContextin interfaceXMLEventWriter
-
popNamespaceStack
protected SimpleNamespaceContext popNamespaceStack()
Removes the activeSimpleNamespaceContextfrom the top of the stack.- Returns:
- The
SimpleNamespaceContextremoved from the namespace stack.
-
peekNamespaceStack
protected SimpleNamespaceContext peekNamespaceStack()
Returns the activeSimpleNamespaceContextfrom the top of the stack.- Returns:
- The active
SimpleNamespaceContextfrom the top of the stack.
-
pushNamespaceStack
protected SimpleNamespaceContext pushNamespaceStack()
Creates a newSimpleNamespaceContextand adds it to the top of the stack.- Returns:
- The new
SimpleNamespaceContext.
-
cacheAttribute
protected void cacheAttribute(Attribute attr)
Adds the specifiedAttributeto the attribute cache.- Parameters:
attr- The attribute to cache.
-
cacheNamespace
protected void cacheNamespace(Namespace ns)
Adds the providedNamespaceevent to the namespace cache. The current namespace context will not be affected.- Parameters:
ns- The namespace to add to the cache.
-
sendEvent
protected abstract void sendEvent(XMLEvent event) throws XMLStreamException
Called by the methods of this class to write the event to the stream.- Parameters:
event- The event to write.- Throws:
XMLStreamException- If an error occurs processing the event.
-
-