public abstract class

ReaderWrapper

extends Object
implements HierarchicalStreamReader
java.lang.Object
   ↳ com.thoughtworks.xstream.io.ReaderWrapper
Known Direct Subclasses

Class Overview

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

Summary

Fields
protected HierarchicalStreamReader wrapped
Protected Constructors
ReaderWrapper(HierarchicalStreamReader reader)
Public Methods
void appendErrors(ErrorWriter errorWriter)
If any errors are detected, allow the reader to add any additional information that can aid debugging (such as line numbers, XPath expressions, etc).
void close()
Close the reader, if necessary.
String getAttribute(int index)
Get the value of an attribute of the current node, by index.
String getAttribute(String name)
Get the value of an attribute of the current node.
int getAttributeCount()
Number of attributes in current node.
String getAttributeName(int index)
Name of attribute in current node.
Iterator getAttributeNames()
Names of attributes (as Strings).
String getNodeName()
Get the name of the current node.
String getValue()
Get the value (text content) of the current node.
boolean hasMoreChildren()
Does the node have any more children remaining that have not yet been read?
void moveDown()
Select the current child as current node.
void moveUp()
Select the parent node as current node.
HierarchicalStreamReader underlyingReader()
Return the underlying HierarchicalStreamReader implementation.
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.thoughtworks.xstream.io.HierarchicalStreamReader

Fields

protected HierarchicalStreamReader wrapped

Protected Constructors

protected ReaderWrapper (HierarchicalStreamReader reader)

Public Methods

public void appendErrors (ErrorWriter errorWriter)

If any errors are detected, allow the reader to add any additional information that can aid debugging (such as line numbers, XPath expressions, etc).

public void close ()

Close the reader, if necessary.

public String getAttribute (int index)

Get the value of an attribute of the current node, by index.

public String getAttribute (String name)

Get the value of an attribute of the current node.

public int getAttributeCount ()

Number of attributes in current node.

public String getAttributeName (int index)

Name of attribute in current node.

public Iterator getAttributeNames ()

Names of attributes (as Strings).

public String getNodeName ()

Get the name of the current node.

public String getValue ()

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

public boolean hasMoreChildren ()

Does the node have any more children remaining that have not yet been read?

public void moveDown ()

Select the current child as current node. A call to this function must be balanced with a call to moveUp().

public void moveUp ()

Select the parent node as current node.

public HierarchicalStreamReader underlyingReader ()

Return the underlying HierarchicalStreamReader implementation.

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

For example:

MySpecificReader mySpecificReader = (MySpecificReader)reader; // INCORRECT!
 mySpecificReader.doSomethingSpecific();
MySpecificReader mySpecificReader = (MySpecificReader)reader.underlyingReader();  // CORRECT!
 mySpecificReader.doSomethingSpecific();

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