Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## com.thoughtworks.xstream.io.xml
Class AbstractDocumentWriter

    java.lang.Object
      com.thoughtworks.xstream.io.xml.AbstractXmlWriter
          com.thoughtworks.xstream.io.xml.AbstractDocumentWriter

All Implemented Interfaces:
  ExtendedHierarchicalStreamWriter, HierarchicalStreamWriter, DocumentWriter, XmlFriendlyWriter

Direct Known Subclasses:
  Dom4JWriter, DomWriter, JDomWriter, XomWriter, XppDomWriter

    public abstract class AbstractDocumentWriter

extends AbstractXmlWriter
implements DocumentWriter

A generic `HierarchicalStreamWriter` for DOM writer implementations. The implementation manages a list of top level DOM nodes. Every time the last node is closed on the node stack, the next started node is added to the list. This list can be retrieved using the `DocumentWriter.getTopLevelNodes()` method.

Since:
  1.2.1
Author:
  Laurent Bihanic, Jörg Schaible

Constructor Summary
`AbstractDocumentWriter(Object container, XmlFriendlyReplacer replacer)` Constructs an AbstractDocumentWriter.

Method Summary
`void` | `close()` Close the writer, if necessary.
`protected abstract Object` | `createNode(String name)` Create a node.
`void` | `endNode()`
`void` | `endNodeInternally()` Called when a node ends.
`void` | `flush()` Flush the writer, if necessary.
`protected Object` | `getCurrent()`
`List` | `getTopLevelNodes()` Retrieve a `List` with the top elements.
`void` | `startNode(String name)`

Methods inherited from class com.thoughtworks.xstream.io.xml.AbstractXmlWriter
`escapeXmlName, startNode, underlyingWriter`

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, setValue, underlyingWriter`

Constructor Detail

### AbstractDocumentWriter

    public AbstractDocumentWriter(Object container,
                                  XmlFriendlyReplacer replacer)

  Constructs an AbstractDocumentWriter.

  Parameters:
    `container` - the top level container for the nodes to create (may be `null`)
    `replacer` - the object that creates XML-friendly names
  Since:
    1.2.1

Method Detail

### startNode

    public final void startNode(String name)

  Specified by:
    `startNode` in interface `HierarchicalStreamWriter`

### createNode

    protected abstract Object createNode(String name)

  Create a node. The provided node name is not yet XML friendly. If `getCurrent()` returns `null` the node is a top level node.

  Parameters:
    `name` - the node name
  Returns:
    the new node
  Since:
    1.2.1

### endNode

    public final void endNode()

  Specified by:
    `endNode` in interface `HierarchicalStreamWriter`

### endNodeInternally

    public void endNodeInternally()

  Called when a node ends. Hook for derived implementations.

  Since:
    1.2.1

### getCurrent

    protected final Object getCurrent()

  Since:
    1.2.1

### getTopLevelNodes

    public List getTopLevelNodes()

  Description copied from interface: `DocumentWriter`
  Retrieve a `List` with the top elements. In the standard use case this list will only contain a single element. Additional elements can only occur, if `HierarchicalStreamWriter.startNode(String)` of the implementing `HierarchicalStreamWriter` was called multiple times with an empty node stack. Such a situation occurs calling `XStream.marshal(Object, HierarchicalStreamWriter)` multiple times directly.

  Specified by:
    `getTopLevelNodes` in interface `DocumentWriter`
  Returns:
    a `List` with top nodes

### flush

    public void flush()

  Description copied from interface: `HierarchicalStreamWriter`
  Flush the writer, if necessary.

  Specified by:
    `flush` in interface `HierarchicalStreamWriter`

### close

    public void close()

  Description copied from interface: `HierarchicalStreamWriter`
  Close the writer, if necessary.

  Specified by:
    `close` in interface `HierarchicalStreamWriter`

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2004-2008 XStream. All Rights Reserved.