com.thoughtworks.xstream.io
Interface HierarchicalStreamWriter

All Known Subinterfaces:
DocumentWriter, ExtendedHierarchicalStreamWriter
All Known Implementing Classes:
AbstractDocumentWriter, AbstractXmlWriter, BinaryStreamWriter, JsonHierarchicalStreamWriter, WriterWrapper

public interface HierarchicalStreamWriter

Author:
Joe Walnes

Method Summary
 void addAttribute(java.lang.String name, java.lang.String value)
           
 void close()
          Close the writer, if necessary.
 void endNode()
           
 void flush()
          Flush the writer, if necessary.
 void setValue(java.lang.String text)
          Write the value (text content) of the current node.
 void startNode(java.lang.String name)
           
 HierarchicalStreamWriter underlyingWriter()
          Return the underlying HierarchicalStreamWriter implementation.
 

Method Detail

startNode

public void startNode(java.lang.String name)

addAttribute

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

setValue

public void setValue(java.lang.String text)
Write the value (text content) of the current node.


endNode

public void endNode()

flush

public void flush()
Flush the writer, if necessary.


close

public void close()
Close the writer, if necessary.


underlyingWriter

public HierarchicalStreamWriter underlyingWriter()
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.



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