public abstract class

WriterWrapper

extends Object
implements ExtendedHierarchicalStreamWriter
java.lang.Object
   ↳ com.thoughtworks.xstream.io.WriterWrapper
Known Direct Subclasses

Class Overview

Base class to make it easy to create wrappers (decorators) for HierarchicalStreamWriter.

Summary

Fields
protected HierarchicalStreamWriter wrapped
Protected Constructors
WriterWrapper(HierarchicalStreamWriter wrapped)
Public Methods
void addAttribute(String key, String value)
void close()
Close the writer, if necessary.
void endNode()
void flush()
Flush the writer, if necessary.
void setValue(String text)
Write the value (text content) of the current node.
void startNode(String name, Class clazz)
void startNode(String name)
HierarchicalStreamWriter underlyingWriter()
Return the underlying HierarchicalStreamWriter implementation.
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.thoughtworks.xstream.io.ExtendedHierarchicalStreamWriter
From interface com.thoughtworks.xstream.io.HierarchicalStreamWriter

Fields

protected HierarchicalStreamWriter wrapped

Protected Constructors

protected WriterWrapper (HierarchicalStreamWriter wrapped)

Public Methods

public void addAttribute (String key, String value)

public void close ()

Close the writer, if necessary.

public void endNode ()

public void flush ()

Flush the writer, if necessary.

public void setValue (String text)

Write the value (text content) of the current node.

public void startNode (String name, Class clazz)

public void startNode (String name)

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.