Package com.thoughtworks.xstream.io
Class WriterWrapper
- java.lang.Object
-
- com.thoughtworks.xstream.io.WriterWrapper
-
- All Implemented Interfaces:
ExtendedHierarchicalStreamWriter,HierarchicalStreamWriter
- Direct Known Subclasses:
PathTrackingWriter,StatefulWriter
public abstract class WriterWrapper extends java.lang.Object implements ExtendedHierarchicalStreamWriter
Base class to make it easy to create wrappers (decorators) for HierarchicalStreamWriter.
-
-
Field Summary
Fields Modifier and Type Field Description protected HierarchicalStreamWriterwrapped
-
Constructor Summary
Constructors Modifier Constructor Description protectedWriterWrapper(HierarchicalStreamWriter wrapped)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddAttribute(java.lang.String key, java.lang.String value)voidclose()Close the writer, if necessary.voidendNode()voidflush()Flush the writer, if necessary.voidsetValue(java.lang.String text)Write the value (text content) of the current node.voidstartNode(java.lang.String name)voidstartNode(java.lang.String name, java.lang.Class clazz)HierarchicalStreamWriterunderlyingWriter()Return the underlying HierarchicalStreamWriter implementation.
-
-
-
Field Detail
-
wrapped
protected HierarchicalStreamWriter wrapped
-
-
Constructor Detail
-
WriterWrapper
protected WriterWrapper(HierarchicalStreamWriter wrapped)
-
-
Method Detail
-
startNode
public void startNode(java.lang.String name)
- Specified by:
startNodein interfaceHierarchicalStreamWriter
-
startNode
public void startNode(java.lang.String name, java.lang.Class clazz)- Specified by:
startNodein interfaceExtendedHierarchicalStreamWriter
-
endNode
public void endNode()
- Specified by:
endNodein interfaceHierarchicalStreamWriter
-
addAttribute
public void addAttribute(java.lang.String key, java.lang.String value)- Specified by:
addAttributein interfaceHierarchicalStreamWriter
-
setValue
public void setValue(java.lang.String text)
Description copied from interface:HierarchicalStreamWriterWrite the value (text content) of the current node.- Specified by:
setValuein interfaceHierarchicalStreamWriter
-
flush
public void flush()
Description copied from interface:HierarchicalStreamWriterFlush the writer, if necessary.- Specified by:
flushin interfaceHierarchicalStreamWriter
-
close
public void close()
Description copied from interface:HierarchicalStreamWriterClose the writer, if necessary.- Specified by:
closein interfaceHierarchicalStreamWriter
-
underlyingWriter
public HierarchicalStreamWriter underlyingWriter()
Description copied from interface:HierarchicalStreamWriterReturn 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.
- Specified by:
underlyingWriterin interfaceHierarchicalStreamWriter
-
-