Package com.thoughtworks.xstream.io
Class AbstractWriter
java.lang.Object
com.thoughtworks.xstream.io.AbstractWriter
- All Implemented Interfaces:
ExtendedHierarchicalStreamWriter
,HierarchicalStreamWriter
- Direct Known Subclasses:
AbstractJsonWriter
,AbstractXmlWriter
Abstract base class for all HierarchicalStreamWriter implementations. Implementations of
HierarchicalStreamWriter
should rather be derived from this class then implementing
the interface directly.- Since:
- 1.4
-
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
Creates an AbstractWriter with a NameCoder that does nothing.protected
AbstractWriter
(NameCoder nameCoder) Creates an AbstractWriter with a providedNameCoder
. -
Method Summary
Modifier and TypeMethodDescriptionencodeAttribute
(String name) Encode the attribute name into the name of the target format.encodeNode
(String name) Encode the node name into the name of the target format.void
Return the underlying HierarchicalStreamWriter implementation.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface com.thoughtworks.xstream.io.HierarchicalStreamWriter
addAttribute, close, endNode, flush, setValue, startNode
-
Field Details
-
nameCoder
-
-
Constructor Details
-
AbstractWriter
protected AbstractWriter()Creates an AbstractWriter with a NameCoder that does nothing.- Since:
- 1.4
-
AbstractWriter
Creates an AbstractWriter with a providedNameCoder
.- Parameters:
nameCoder
- the name coder used to write names in the target format- Since:
- 1.4
-
-
Method Details
-
startNode
- Specified by:
startNode
in interfaceExtendedHierarchicalStreamWriter
-
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.
- Specified by:
underlyingWriter
in interfaceHierarchicalStreamWriter
-
encodeNode
Encode the node name into the name of the target format.- Parameters:
name
- the original name- Returns:
- the name in the target format
- Since:
- 1.4
-
encodeAttribute
Encode the attribute name into the name of the target format.- Parameters:
name
- the original name- Returns:
- the name in the target format
- Since:
- 1.4
-