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 AbstractPullReader

    java.lang.Object
      com.thoughtworks.xstream.io.xml.AbstractXmlReader
          com.thoughtworks.xstream.io.xml.AbstractPullReader

All Implemented Interfaces:
  HierarchicalStreamReader, XmlFriendlyReader

Direct Known Subclasses:
  StaxReader, XppReader

    public abstract class AbstractPullReader

extends AbstractXmlReader

Base class that contains common functionality across HierarchicalStreamReader implementations that need to read from a pull parser.

Author:
  Joe Walnes, James Strachan

Field Summary
`protected static int` | `COMMENT`
`protected static int` | `END_NODE`
`protected static int` | `OTHER`
`protected static int` | `START_NODE`
`protected static int` | `TEXT`

Constructor Summary
`protected` | `AbstractPullReader(XmlFriendlyReplacer replacer)`

Method Summary
`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` | `mark()`
`void` | `moveDown()` Select the current child as current node.
`void` | `moveUp()` Select the parent node as current node.
`protected abstract String` | `pullElementName()` Pull the name of the current element from the stream.
`protected abstract int` | `pullNextEvent()` Pull the next event from the stream.
`protected abstract String` | `pullText()` Pull the contents of the current text node from the stream.
`void` | `reset()`
`HierarchicalStreamReader` | `underlyingReader()` Return the underlying HierarchicalStreamReader implementation.

Methods inherited from class com.thoughtworks.xstream.io.xml.AbstractXmlReader
`escapeXmlName, unescapeXmlName`

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.HierarchicalStreamReader
`appendErrors, close, getAttribute, getAttribute, getAttributeCount, getAttributeName`

Field Detail

### START_NODE

    protected static final int START_NODE

See Also:
  Constant Field Values

### END_NODE

    protected static final int END_NODE

See Also:
  Constant Field Values

### TEXT

    protected static final int TEXT

See Also:
  Constant Field Values

### COMMENT

    protected static final int COMMENT

See Also:
  Constant Field Values

### OTHER

    protected static final int OTHER

See Also:
  Constant Field Values

Constructor Detail

### AbstractPullReader

    protected AbstractPullReader(XmlFriendlyReplacer replacer)

Since:
  1.2

Method Detail

### pullNextEvent

    protected abstract int pullNextEvent()

  Pull the next event from the stream.

  This MUST return `START_NODE`, `END_NODE`, `TEXT`, `COMMENT`, `OTHER` or throw `StreamException`.

  The underlying pull parser will most likely return its own event types. These must be mapped to the appropriate events.

### pullElementName

    protected abstract String pullElementName()

  Pull the name of the current element from the stream.

### pullText

    protected abstract String pullText()

  Pull the contents of the current text node from the stream.

### hasMoreChildren

    public boolean hasMoreChildren()

  Description copied from interface: `HierarchicalStreamReader`
  Does the node have any more children remaining that have not yet been read?

### moveDown

    public void moveDown()

  Description copied from interface: `HierarchicalStreamReader`
  Select the current child as current node. A call to this function must be balanced with a call to `HierarchicalStreamReader.moveUp()`.

### moveUp

    public void moveUp()

  Description copied from interface: `HierarchicalStreamReader`
  Select the parent node as current node.

### mark

    public void mark()

### reset

    public void reset()

### getValue

    public String getValue()

  Description copied from interface: `HierarchicalStreamReader`
  Get the value (text content) of the current node.

### getAttributeNames

    public Iterator getAttributeNames()

  Description copied from interface: `HierarchicalStreamReader`
  Names of attributes (as Strings).

### getNodeName

    public String getNodeName()

  Description copied from interface: `HierarchicalStreamReader`
  Get the name of the current node.

### underlyingReader

    public HierarchicalStreamReader underlyingReader()

  Description copied from interface: `HierarchicalStreamReader`
  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.

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.