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.
|