com.sun.xml.stream.writers
Class XMLStreamWriterImpl

java.lang.Object
  extended by java.util.AbstractMap
      extended by com.sun.xml.stream.writers.XMLStreamWriterImpl
All Implemented Interfaces:
java.util.Map, javax.xml.stream.XMLStreamWriter

public final class XMLStreamWriterImpl
extends java.util.AbstractMap
implements javax.xml.stream.XMLStreamWriter

This class implements a StAX XMLStreamWriter. It extends AbstractMap in order to support a getter for implementation-specific properties. For example, you can get the underlying OutputStream by casting an instance of this class to Map and calling getProperty(OUTPUTSTREAM_PROPERTY).

Author:
Neeraj Bajaj, K.Venugopal, Santiago.Pericas-Geertsen@sun.com

Nested Class Summary
protected  class XMLStreamWriterImpl.ElementStack
           
 
Nested classes/interfaces inherited from class java.util.AbstractMap
java.util.AbstractMap.SimpleEntry<K,V>, java.util.AbstractMap.SimpleImmutableEntry<K,V>
 
Nested classes/interfaces inherited from interface java.util.Map
java.util.Map.Entry<K,V>
 
Field Summary
static java.lang.String CLOSE_EMPTY_ELEMENT
           
static char CLOSE_END_TAG
           
static char CLOSE_START_TAG
           
static java.lang.String DEFAULT_ENCODING
           
static java.lang.String DEFAULT_XML_VERSION
           
static java.lang.String DEFAULT_XMLDECL
           
static java.lang.String END_CDATA
           
static java.lang.String END_COMMENT
           
static java.lang.String OPEN_END_TAG
           
static char OPEN_START_TAG
           
static java.lang.String OUTPUTSTREAM_PROPERTY
           
static java.lang.String SPACE
           
static java.lang.String START_CDATA
           
static java.lang.String START_COMMENT
           
static java.lang.String UTF_8
           
 
Constructor Summary
XMLStreamWriterImpl(java.io.OutputStream outputStream, PropertyManager props)
          Creates a new instance of XMLStreamWriterImpl.
XMLStreamWriterImpl(java.io.OutputStream outputStream, java.lang.String encoding, PropertyManager props)
          Creates a new instance of XMLStreamWriterImpl.
XMLStreamWriterImpl(javax.xml.transform.stream.StreamResult sr, java.lang.String encoding, PropertyManager props)
          Creates a new instance of XMLStreamWriterImpl using a StreamResult.
XMLStreamWriterImpl(java.io.Writer writer, PropertyManager props)
          Creates a new instance of XMLStreamWriterImpl using a Writer.
 
Method Summary
 boolean canReuse()
          Can this instance be reused
 void close()
          Close this XMLStreamWriter by closing underlying writer.
 boolean containsKey(java.lang.Object key)
           
 java.util.Set entrySet()
           
 void flush()
          Flush this XMLStreamWriter by flushin underlying writer.
 java.lang.Object get(java.lang.Object key)
          Returns the value associated to an implementation-specific property.
 boolean getEscapeCharacters()
           
 javax.xml.namespace.NamespaceContext getNamespaceContext()
          Return NamespaceContext being used by the writer.
 java.lang.String getPrefix(java.lang.String uri)
          Return a prefix associated with specified uri, or null if the uri is unknown.
 java.lang.Object getProperty(java.lang.String str)
          Returns value associated with the specified property name.
 boolean isEmpty()
           
protected  void repair()
          Correct's namespaces as per requirements of isReparisingNamespace property.
 void reset()
          Reset this instance so that it can be re-used.
 void setDefaultNamespace(java.lang.String uri)
          Set the specified URI as default namespace in the current namespace context.
 void setEscapeCharacters(boolean escape)
           
 void setNamespaceContext(javax.xml.namespace.NamespaceContext namespaceContext)
          Sets the current NamespaceContext for prefix and uri bindings.
 void setOutput(javax.xml.transform.stream.StreamResult sr, java.lang.String encoding)
          Use a StreamResult to initialize the output for this XMLStreamWriter.
 void setPrefix(java.lang.String prefix, java.lang.String uri)
          Sets the prefix the uri is bound to.
 int size()
           
 void writeAttribute(java.lang.String localName, java.lang.String value)
           
 void writeAttribute(java.lang.String namespaceURI, java.lang.String localName, java.lang.String value)
           
 void writeAttribute(java.lang.String prefix, java.lang.String namespaceURI, java.lang.String localName, java.lang.String value)
           
 void writeCData(java.lang.String cdata)
           
 void writeCharacters(char[] data, int start, int len)
           
 void writeCharacters(java.lang.String data)
           
 void writeComment(java.lang.String comment)
           
 void writeDefaultNamespace(java.lang.String uri)
           
 void writeDTD(java.lang.String dtd)
           
 void writeEmptyElement(java.lang.String localName)
           
 void writeEmptyElement(java.lang.String namespaceURI, java.lang.String localName)
           
 void writeEmptyElement(java.lang.String prefix, java.lang.String localName, java.lang.String namespaceURI)
           
 void writeEndDocument()
           
 void writeEndElement()
           
 void writeEntityRef(java.lang.String refName)
           
 void writeNamespace(java.lang.String prefix, java.lang.String namespaceURI)
           
 void writeProcessingInstruction(java.lang.String target)
           
 void writeProcessingInstruction(java.lang.String target, java.lang.String data)
           
 void writeStartDocument()
           
 void writeStartDocument(java.lang.String version)
           
 void writeStartDocument(java.lang.String encoding, java.lang.String version)
           
 void writeStartElement(java.lang.String localName)
           
 void writeStartElement(java.lang.String namespaceURI, java.lang.String localName)
           
 void writeStartElement(java.lang.String prefix, java.lang.String localName, java.lang.String namespaceURI)
           
 
Methods inherited from class java.util.AbstractMap
clear, clone, containsValue, equals, hashCode, keySet, put, putAll, remove, toString, values
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

START_COMMENT

public static final java.lang.String START_COMMENT
See Also:
Constant Field Values

END_COMMENT

public static final java.lang.String END_COMMENT
See Also:
Constant Field Values

DEFAULT_ENCODING

public static final java.lang.String DEFAULT_ENCODING
See Also:
Constant Field Values

DEFAULT_XMLDECL

public static final java.lang.String DEFAULT_XMLDECL
See Also:
Constant Field Values

DEFAULT_XML_VERSION

public static final java.lang.String DEFAULT_XML_VERSION
See Also:
Constant Field Values

CLOSE_START_TAG

public static final char CLOSE_START_TAG
See Also:
Constant Field Values

OPEN_START_TAG

public static final char OPEN_START_TAG
See Also:
Constant Field Values

OPEN_END_TAG

public static final java.lang.String OPEN_END_TAG
See Also:
Constant Field Values

CLOSE_END_TAG

public static final char CLOSE_END_TAG
See Also:
Constant Field Values

START_CDATA

public static final java.lang.String START_CDATA
See Also:
Constant Field Values

END_CDATA

public static final java.lang.String END_CDATA
See Also:
Constant Field Values

CLOSE_EMPTY_ELEMENT

public static final java.lang.String CLOSE_EMPTY_ELEMENT
See Also:
Constant Field Values

SPACE

public static final java.lang.String SPACE
See Also:
Constant Field Values

UTF_8

public static final java.lang.String UTF_8
See Also:
Constant Field Values

OUTPUTSTREAM_PROPERTY

public static java.lang.String OUTPUTSTREAM_PROPERTY
Constructor Detail

XMLStreamWriterImpl

public XMLStreamWriterImpl(java.io.OutputStream outputStream,
                           PropertyManager props)
                    throws java.io.IOException
Creates a new instance of XMLStreamWriterImpl. Uses platform's default encoding.

Parameters:
outputStream - Underlying stream to write the bytes to
props - Properties used by this writer
Throws:
java.io.IOException

XMLStreamWriterImpl

public XMLStreamWriterImpl(java.io.OutputStream outputStream,
                           java.lang.String encoding,
                           PropertyManager props)
                    throws java.io.IOException
Creates a new instance of XMLStreamWriterImpl.

Parameters:
outputStream - Underlying stream to write the bytes
encoding - Encoding used to convert chars into bytes
props - Properties used by this writer
Throws:
java.io.IOException

XMLStreamWriterImpl

public XMLStreamWriterImpl(java.io.Writer writer,
                           PropertyManager props)
                    throws java.io.IOException
Creates a new instance of XMLStreamWriterImpl using a Writer.

Parameters:
writer - Underlying writer to which chars are written
props - Properties used by this writer
Throws:
java.io.IOException

XMLStreamWriterImpl

public XMLStreamWriterImpl(javax.xml.transform.stream.StreamResult sr,
                           java.lang.String encoding,
                           PropertyManager props)
                    throws java.io.IOException
Creates a new instance of XMLStreamWriterImpl using a StreamResult. A StreamResult encasupates an OutputStream, a Writer or a SystemId.

Parameters:
writer - Underlying writer to which chars are written
props - Properties used by this writer
Throws:
java.io.IOException
Method Detail

reset

public void reset()
Reset this instance so that it can be re-used. Do not read properties again. The method setOutput(StreamResult, encoding) must be called after this one.


setOutput

public void setOutput(javax.xml.transform.stream.StreamResult sr,
                      java.lang.String encoding)
               throws java.io.IOException
Use a StreamResult to initialize the output for this XMLStreamWriter. Check for OutputStream, Writer and then systemId, in that order.

Parameters:
sr - StreamResult encapsulating output information
encoding - Encoding to be used except when a Writer is available
Throws:
java.io.IOException

canReuse

public boolean canReuse()
Can this instance be reused

Returns:
boolean boolean value to indicate if this instance can be reused or not

setEscapeCharacters

public void setEscapeCharacters(boolean escape)

getEscapeCharacters

public boolean getEscapeCharacters()

close

public void close()
           throws javax.xml.stream.XMLStreamException
Close this XMLStreamWriter by closing underlying writer.

Specified by:
close in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

flush

public void flush()
           throws javax.xml.stream.XMLStreamException
Flush this XMLStreamWriter by flushin underlying writer.

Specified by:
flush in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

getNamespaceContext

public javax.xml.namespace.NamespaceContext getNamespaceContext()
Return NamespaceContext being used by the writer.

Specified by:
getNamespaceContext in interface javax.xml.stream.XMLStreamWriter
Returns:
NamespaceContext

getPrefix

public java.lang.String getPrefix(java.lang.String uri)
                           throws javax.xml.stream.XMLStreamException
Return a prefix associated with specified uri, or null if the uri is unknown.

Specified by:
getPrefix in interface javax.xml.stream.XMLStreamWriter
Parameters:
uri - The namespace uri
Throws:
javax.xml.stream.XMLStreamException - if uri specified is "" or null

getProperty

public java.lang.Object getProperty(java.lang.String str)
                             throws java.lang.IllegalArgumentException
Returns value associated with the specified property name.

Specified by:
getProperty in interface javax.xml.stream.XMLStreamWriter
Parameters:
str - Property name
Returns:
value associated with the specified property.
Throws:
java.lang.IllegalArgumentException - if the specified property is not supported

setDefaultNamespace

public void setDefaultNamespace(java.lang.String uri)
                         throws javax.xml.stream.XMLStreamException
Set the specified URI as default namespace in the current namespace context.

Specified by:
setDefaultNamespace in interface javax.xml.stream.XMLStreamWriter
Parameters:
uri - Namespace URI
Throws:
javax.xml.stream.XMLStreamException

setNamespaceContext

public void setNamespaceContext(javax.xml.namespace.NamespaceContext namespaceContext)
                         throws javax.xml.stream.XMLStreamException
Sets the current NamespaceContext for prefix and uri bindings. This context becomes the root namespace context for writing and will replace the current root namespace context. Subsequent calls to setPrefix and setDefaultNamespace will bind namespaces using the context passed to the method as the root context for resolving namespaces. This method may only be called once at the start of the document. It does not cause the namespaces to be declared. If a namespace URI to prefix mapping is found in the namespace context it is treated as declared and the prefix may be used by the XMLStreamWriter.

Specified by:
setNamespaceContext in interface javax.xml.stream.XMLStreamWriter
Parameters:
namespaceContext - the namespace context to use for this writer, may not be null
Throws:
javax.xml.stream.XMLStreamException

setPrefix

public void setPrefix(java.lang.String prefix,
                      java.lang.String uri)
               throws javax.xml.stream.XMLStreamException
Sets the prefix the uri is bound to. This prefix is bound in the scope of the current START_ELEMENT / END_ELEMENT pair. If this method is called before a START_ELEMENT has been written the prefix is bound in the root scope.

Specified by:
setPrefix in interface javax.xml.stream.XMLStreamWriter
Parameters:
prefix -
uri -
Throws:
javax.xml.stream.XMLStreamException

writeAttribute

public void writeAttribute(java.lang.String localName,
                           java.lang.String value)
                    throws javax.xml.stream.XMLStreamException
Specified by:
writeAttribute in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeAttribute

public void writeAttribute(java.lang.String namespaceURI,
                           java.lang.String localName,
                           java.lang.String value)
                    throws javax.xml.stream.XMLStreamException
Specified by:
writeAttribute in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeAttribute

public void writeAttribute(java.lang.String prefix,
                           java.lang.String namespaceURI,
                           java.lang.String localName,
                           java.lang.String value)
                    throws javax.xml.stream.XMLStreamException
Specified by:
writeAttribute in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeCData

public void writeCData(java.lang.String cdata)
                throws javax.xml.stream.XMLStreamException
Specified by:
writeCData in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeCharacters

public void writeCharacters(java.lang.String data)
                     throws javax.xml.stream.XMLStreamException
Specified by:
writeCharacters in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeCharacters

public void writeCharacters(char[] data,
                            int start,
                            int len)
                     throws javax.xml.stream.XMLStreamException
Specified by:
writeCharacters in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeComment

public void writeComment(java.lang.String comment)
                  throws javax.xml.stream.XMLStreamException
Specified by:
writeComment in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeDTD

public void writeDTD(java.lang.String dtd)
              throws javax.xml.stream.XMLStreamException
Specified by:
writeDTD in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeDefaultNamespace

public void writeDefaultNamespace(java.lang.String uri)
                           throws javax.xml.stream.XMLStreamException
Specified by:
writeDefaultNamespace in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeEmptyElement

public void writeEmptyElement(java.lang.String localName)
                       throws javax.xml.stream.XMLStreamException
Specified by:
writeEmptyElement in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeEmptyElement

public void writeEmptyElement(java.lang.String namespaceURI,
                              java.lang.String localName)
                       throws javax.xml.stream.XMLStreamException
Specified by:
writeEmptyElement in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeEmptyElement

public void writeEmptyElement(java.lang.String prefix,
                              java.lang.String localName,
                              java.lang.String namespaceURI)
                       throws javax.xml.stream.XMLStreamException
Specified by:
writeEmptyElement in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeEndDocument

public void writeEndDocument()
                      throws javax.xml.stream.XMLStreamException
Specified by:
writeEndDocument in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeEndElement

public void writeEndElement()
                     throws javax.xml.stream.XMLStreamException
Specified by:
writeEndElement in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeEntityRef

public void writeEntityRef(java.lang.String refName)
                    throws javax.xml.stream.XMLStreamException
Specified by:
writeEntityRef in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeNamespace

public void writeNamespace(java.lang.String prefix,
                           java.lang.String namespaceURI)
                    throws javax.xml.stream.XMLStreamException
Specified by:
writeNamespace in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeProcessingInstruction

public void writeProcessingInstruction(java.lang.String target)
                                throws javax.xml.stream.XMLStreamException
Specified by:
writeProcessingInstruction in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeProcessingInstruction

public void writeProcessingInstruction(java.lang.String target,
                                       java.lang.String data)
                                throws javax.xml.stream.XMLStreamException
Specified by:
writeProcessingInstruction in interface javax.xml.stream.XMLStreamWriter
Parameters:
target -
data -
Throws:
javax.xml.stream.XMLStreamException

writeStartDocument

public void writeStartDocument()
                        throws javax.xml.stream.XMLStreamException
Specified by:
writeStartDocument in interface javax.xml.stream.XMLStreamWriter
Throws:
javax.xml.stream.XMLStreamException

writeStartDocument

public void writeStartDocument(java.lang.String version)
                        throws javax.xml.stream.XMLStreamException
Specified by:
writeStartDocument in interface javax.xml.stream.XMLStreamWriter
Parameters:
version -
Throws:
javax.xml.stream.XMLStreamException

writeStartDocument

public void writeStartDocument(java.lang.String encoding,
                               java.lang.String version)
                        throws javax.xml.stream.XMLStreamException
Specified by:
writeStartDocument in interface javax.xml.stream.XMLStreamWriter
Parameters:
encoding -
version -
Throws:
javax.xml.stream.XMLStreamException

writeStartElement

public void writeStartElement(java.lang.String localName)
                       throws javax.xml.stream.XMLStreamException
Specified by:
writeStartElement in interface javax.xml.stream.XMLStreamWriter
Parameters:
localName -
Throws:
javax.xml.stream.XMLStreamException

writeStartElement

public void writeStartElement(java.lang.String namespaceURI,
                              java.lang.String localName)
                       throws javax.xml.stream.XMLStreamException
Specified by:
writeStartElement in interface javax.xml.stream.XMLStreamWriter
Parameters:
namespaceURI -
localName -
Throws:
javax.xml.stream.XMLStreamException

writeStartElement

public void writeStartElement(java.lang.String prefix,
                              java.lang.String localName,
                              java.lang.String namespaceURI)
                       throws javax.xml.stream.XMLStreamException
Specified by:
writeStartElement in interface javax.xml.stream.XMLStreamWriter
Parameters:
prefix -
localName -
namespaceURI -
Throws:
javax.xml.stream.XMLStreamException

repair

protected void repair()
Correct's namespaces as per requirements of isReparisingNamespace property.


size

public int size()
Specified by:
size in interface java.util.Map
Overrides:
size in class java.util.AbstractMap

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface java.util.Map
Overrides:
isEmpty in class java.util.AbstractMap

containsKey

public boolean containsKey(java.lang.Object key)
Specified by:
containsKey in interface java.util.Map
Overrides:
containsKey in class java.util.AbstractMap

get

public java.lang.Object get(java.lang.Object key)
Returns the value associated to an implementation-specific property. Ensures that underlying OutputStream is flushed before returning.

Specified by:
get in interface java.util.Map
Overrides:
get in class java.util.AbstractMap

entrySet

public java.util.Set entrySet()
Specified by:
entrySet in interface java.util.Map
Specified by:
entrySet in class java.util.AbstractMap


Copyright ? 2002-2003 Apache XML Project. All Rights Reserved.