com.thoughtworks.xstream.io.xml
Class StaxWriter

java.lang.Object
  extended by com.thoughtworks.xstream.io.xml.AbstractXmlWriter
      extended by com.thoughtworks.xstream.io.xml.StaxWriter
All Implemented Interfaces:
ExtendedHierarchicalStreamWriter, HierarchicalStreamWriter

public class StaxWriter
extends AbstractXmlWriter

A stream writing that outputs to a StAX stream writer

Version:
$Revision: 904 $
Author:
James Strachan

Constructor Summary
StaxWriter(QNameMap qnameMap, javax.xml.stream.XMLStreamWriter out)
           
StaxWriter(QNameMap qnameMap, javax.xml.stream.XMLStreamWriter out, boolean writeEnclosingDocument, boolean namespaceRepairingMode)
          Allows a StaxWriter to be created for partial XML output
StaxWriter(QNameMap qnameMap, javax.xml.stream.XMLStreamWriter out, boolean writeEnclosingDocument, boolean namespaceRepairingMode, XmlFriendlyReplacer replacer)
          Allows a StaxWriter to be created for partial XML output
 
Method Summary
 void addAttribute(java.lang.String name, java.lang.String value)
           
 void close()
          Call this method when you're finished with me
 void endNode()
           
 void flush()
          Flush the writer, if necessary.
 boolean isNamespaceRepairingMode()
          Is StAX namespace repairing mode on or off?
 void setValue(java.lang.String text)
          Write the value (text content) of the current node.
 void startNode(java.lang.String name)
           
 void startNode(java.lang.String name, java.lang.Class clazz)
           
 HierarchicalStreamWriter underlyingWriter()
          Return the underlying HierarchicalStreamWriter implementation.
 
Methods inherited from class com.thoughtworks.xstream.io.xml.AbstractXmlWriter
escapeXmlName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

StaxWriter

public StaxWriter(QNameMap qnameMap,
                  javax.xml.stream.XMLStreamWriter out)
           throws javax.xml.stream.XMLStreamException
Throws:
javax.xml.stream.XMLStreamException

StaxWriter

public StaxWriter(QNameMap qnameMap,
                  javax.xml.stream.XMLStreamWriter out,
                  boolean writeEnclosingDocument,
                  boolean namespaceRepairingMode)
           throws javax.xml.stream.XMLStreamException
Allows a StaxWriter to be created for partial XML output

Parameters:
qnameMap - is the mapper of Java class names to QNames
out - the stream to output to
writeEnclosingDocument - a flag to indicate whether or not the start/end document events should be written
Throws:
javax.xml.stream.XMLStreamException - if the events could not be written to the output

StaxWriter

public StaxWriter(QNameMap qnameMap,
                  javax.xml.stream.XMLStreamWriter out,
                  boolean writeEnclosingDocument,
                  boolean namespaceRepairingMode,
                  XmlFriendlyReplacer replacer)
           throws javax.xml.stream.XMLStreamException
Allows a StaxWriter to be created for partial XML output

Parameters:
qnameMap - is the mapper of Java class names to QNames
out - the stream to output to
writeEnclosingDocument - a flag to indicate whether or not the start/end document events should be written
replacer - the xml-friendly replacer to escape Java names
Throws:
javax.xml.stream.XMLStreamException - if the events could not be written to the output
Since:
1.2
Method Detail

flush

public void flush()
Description copied from interface: HierarchicalStreamWriter
Flush the writer, if necessary.


close

public void close()
Call this method when you're finished with me


addAttribute

public void addAttribute(java.lang.String name,
                         java.lang.String value)

endNode

public void endNode()

setValue

public void setValue(java.lang.String text)
Description copied from interface: HierarchicalStreamWriter
Write the value (text content) of the current node.


startNode

public void startNode(java.lang.String name)

startNode

public void startNode(java.lang.String name,
                      java.lang.Class clazz)

underlyingWriter

public HierarchicalStreamWriter underlyingWriter()
Description copied from interface: HierarchicalStreamWriter
Return the underlying HierarchicalStreamWriter implementation.

If a Converter needs to access methods of a specific HierarchicalStreamWriter implementation that are not defined in the HierarchicalStreamWriter interface, it should call this method before casting. This is because the writer passed to the Converter is often wrapped/decorated by another implementation to provide additional functionality (such as XPath tracking).

For example:

MySpecificWriter mySpecificWriter = (MySpecificWriter)writer; // INCORRECT!
 mySpecificWriter.doSomethingSpecific();
MySpecificWriter mySpecificWriter = (MySpecificWriter)writer.underlyingWriter();  // CORRECT!
 mySpecificWriter.doSomethingSpecific();

Implementations of HierarchicalStreamWriter should return 'this', unless they are a decorator, in which case they should delegate to whatever they are wrapping.


isNamespaceRepairingMode

public boolean isNamespaceRepairingMode()
Is StAX namespace repairing mode on or off?



Joe Walnes, http://xstream.codehaus.org/