org.codehaus.stax2.ri.evt
Class Stax2EventReaderAdapter

java.lang.Object
  extended by org.codehaus.stax2.ri.evt.Stax2EventReaderAdapter
All Implemented Interfaces:
Iterator, XMLEventReader, XMLEventReader2

public class Stax2EventReaderAdapter
extends Object
implements XMLEventReader2

This adapter implements parts of XMLEventReader2, the extended stream reader defined by Stax2 extension, by wrapping a vanilla Stax 1.0 XMLEventReader implementation.

Note: the implementation may be incomplete as-is, since not all features needed are necessarily accessible via basic Stax 1.0 interface. As such, two main use cases for this wrapper are:

Author:
Tatu Saloranta

Constructor Summary
protected Stax2EventReaderAdapter(XMLEventReader er)
           
 
Method Summary
 void close()
           
 String getElementText()
           
 Object getProperty(String name)
           
 boolean hasNext()
           
 boolean hasNextEvent()
          Method that is similar to XMLEventReader.hasNext(), except that it can throw a XMLStreamException.
 boolean isPropertySupported(String name)
          Method similar to XMLInputFactory.isPropertySupported(java.lang.String), used to determine whether a property is supported by the Reader instance.
 Object next()
           
 XMLEvent nextEvent()
           
 XMLEvent nextTag()
           
 XMLEvent peek()
           
 void remove()
          Note: only here because we implement Iterator interface.
 boolean setProperty(String name, Object value)
          Method that can be used to set per-reader properties; a subset of properties one can set via matching XMLInputFactory2 instance.
static XMLEventReader2 wrapIfNecessary(XMLEventReader er)
          Method that should be used to add dynamic support for XMLEventReader2.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Stax2EventReaderAdapter

protected Stax2EventReaderAdapter(XMLEventReader er)
Method Detail

wrapIfNecessary

public static XMLEventReader2 wrapIfNecessary(XMLEventReader er)
Method that should be used to add dynamic support for XMLEventReader2. Method will check whether the stream reader passed happens to be a XMLEventReader2; and if it is, return it properly cast. If not, it will create necessary wrapper.


close

public void close()
           throws XMLStreamException
Specified by:
close in interface XMLEventReader
Throws:
XMLStreamException

getElementText

public String getElementText()
                      throws XMLStreamException
Specified by:
getElementText in interface XMLEventReader
Throws:
XMLStreamException

getProperty

public Object getProperty(String name)
Specified by:
getProperty in interface XMLEventReader

hasNext

public boolean hasNext()
Specified by:
hasNext in interface Iterator
Specified by:
hasNext in interface XMLEventReader

nextEvent

public XMLEvent nextEvent()
                   throws XMLStreamException
Specified by:
nextEvent in interface XMLEventReader
Throws:
XMLStreamException

next

public Object next()
Specified by:
next in interface Iterator

nextTag

public XMLEvent nextTag()
                 throws XMLStreamException
Specified by:
nextTag in interface XMLEventReader
Throws:
XMLStreamException

peek

public XMLEvent peek()
              throws XMLStreamException
Specified by:
peek in interface XMLEventReader
Throws:
XMLStreamException

remove

public void remove()
Note: only here because we implement Iterator interface.

Specified by:
remove in interface Iterator

hasNextEvent

public boolean hasNextEvent()
                     throws XMLStreamException
Description copied from interface: XMLEventReader2
Method that is similar to XMLEventReader.hasNext(), except that it can throw a XMLStreamException. This is important distinction, since the underlying stream reader is NOT allowed to throw such an exception when its hasNext() gets called; but the underlying parser may well need to advance the input stream and in doing so may encounter an exception. This exception should be propagated to the caller, as it may signal a problem with the input stream or xml content.

Specified by:
hasNextEvent in interface XMLEventReader2
Throws:
XMLStreamException

isPropertySupported

public boolean isPropertySupported(String name)
Description copied from interface: XMLEventReader2
Method similar to XMLInputFactory.isPropertySupported(java.lang.String), used to determine whether a property is supported by the Reader instance. This means that this method may return false for some properties that the input factory does support: specifically, it should only return true if the value is mutable on per-instance basis. False means that either the property is not recognized, or is not mutable via reader instance.

Specified by:
isPropertySupported in interface XMLEventReader2

setProperty

public boolean setProperty(String name,
                           Object value)
Description copied from interface: XMLEventReader2
Method that can be used to set per-reader properties; a subset of properties one can set via matching XMLInputFactory2 instance. Exactly which methods are mutable is implementation specific.

Specified by:
setProperty in interface XMLEventReader2
Parameters:
name - Name of the property to set
value - Value to set property to.
Returns:
True, if the specified property was succesfully set to specified value; false if its value was not changed