public abstract class

AbstractXmlWriter

extends Object
implements ExtendedHierarchicalStreamWriter XmlFriendlyWriter
java.lang.Object
   ↳ com.thoughtworks.xstream.io.xml.AbstractXmlWriter
Known Direct Subclasses
Known Indirect Subclasses

Class Overview

Abstract base implementation of HierarchicalStreamWriter that provides common functionality to all XML-based writers.

Summary

Protected Constructors
AbstractXmlWriter()
AbstractXmlWriter(XmlFriendlyReplacer replacer)
Public Methods
String escapeXmlName(String name)
Escapes XML name (node or attribute) to be XML-friendly
void startNode(String name, Class clazz)
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
From interface com.thoughtworks.xstream.io.xml.XmlFriendlyWriter

Protected Constructors

protected AbstractXmlWriter ()

protected AbstractXmlWriter (XmlFriendlyReplacer replacer)

Public Methods

public String escapeXmlName (String name)

Escapes XML name (node or attribute) to be XML-friendly

Parameters
name the unescaped XML name
Returns
  • An escaped name with original characters replaced

public void startNode (String name, Class clazz)

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.