Package org.codehaus.stax2.ri.evt
Class Stax2EventReaderAdapter
- java.lang.Object
-
- org.codehaus.stax2.ri.evt.Stax2EventReaderAdapter
-
- All Implemented Interfaces:
java.util.Iterator<java.lang.Object>,javax.xml.stream.XMLEventReader,XMLEventReader2
public class Stax2EventReaderAdapter extends java.lang.Object implements XMLEventReader2
This adapter implements parts ofXMLEventReader2, the extended stream reader defined by Stax2 extension, by wrapping a vanilla Stax 1.0XMLEventReaderimplementation.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:
- Serve as convenient base class for a complete implementation, which can use native accessors provided by the wrapped Stax implementation
- To be used for tasks that make limited use of Stax2 API, such that missing parts are not needed
- Author:
- Tatu Saloranta
-
-
Field Summary
Fields Modifier and Type Field Description protected javax.xml.stream.XMLEventReadermReader
-
Constructor Summary
Constructors Modifier Constructor Description protectedStax2EventReaderAdapter(javax.xml.stream.XMLEventReader er)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()java.lang.StringgetElementText()java.lang.ObjectgetProperty(java.lang.String name)booleanhasNext()booleanhasNextEvent()Method that is similar toXMLEventReader.hasNext(), except that it can throw aXMLStreamException.booleanisPropertySupported(java.lang.String name)Method similar toXMLInputFactory.isPropertySupported(java.lang.String), used to determine whether a property is supported by the Reader instance.java.lang.Objectnext()javax.xml.stream.events.XMLEventnextEvent()javax.xml.stream.events.XMLEventnextTag()javax.xml.stream.events.XMLEventpeek()voidremove()Note: only here because we implement Iterator interface.booleansetProperty(java.lang.String name, java.lang.Object value)Method that can be used to set per-reader properties; a subset of properties one can set via matchingXMLInputFactory2instance.static XMLEventReader2wrapIfNecessary(javax.xml.stream.XMLEventReader er)Method that should be used to add dynamic support forXMLEventReader2.
-
-
-
Method Detail
-
wrapIfNecessary
public static XMLEventReader2 wrapIfNecessary(javax.xml.stream.XMLEventReader er)
Method that should be used to add dynamic support forXMLEventReader2. Method will check whether the stream reader passed happens to be aXMLEventReader2; and if it is, return it properly cast. If not, it will create necessary wrapper.
-
close
public void close() throws javax.xml.stream.XMLStreamException- Specified by:
closein interfacejavax.xml.stream.XMLEventReader- Throws:
javax.xml.stream.XMLStreamException
-
getElementText
public java.lang.String getElementText() throws javax.xml.stream.XMLStreamException- Specified by:
getElementTextin interfacejavax.xml.stream.XMLEventReader- Throws:
javax.xml.stream.XMLStreamException
-
getProperty
public java.lang.Object getProperty(java.lang.String name)
- Specified by:
getPropertyin interfacejavax.xml.stream.XMLEventReader
-
hasNext
public boolean hasNext()
- Specified by:
hasNextin interfacejava.util.Iterator<java.lang.Object>- Specified by:
hasNextin interfacejavax.xml.stream.XMLEventReader
-
nextEvent
public javax.xml.stream.events.XMLEvent nextEvent() throws javax.xml.stream.XMLStreamException- Specified by:
nextEventin interfacejavax.xml.stream.XMLEventReader- Throws:
javax.xml.stream.XMLStreamException
-
next
public java.lang.Object next()
- Specified by:
nextin interfacejava.util.Iterator<java.lang.Object>
-
nextTag
public javax.xml.stream.events.XMLEvent nextTag() throws javax.xml.stream.XMLStreamException- Specified by:
nextTagin interfacejavax.xml.stream.XMLEventReader- Throws:
javax.xml.stream.XMLStreamException
-
peek
public javax.xml.stream.events.XMLEvent peek() throws javax.xml.stream.XMLStreamException- Specified by:
peekin interfacejavax.xml.stream.XMLEventReader- Throws:
javax.xml.stream.XMLStreamException
-
remove
public void remove()
Note: only here because we implement Iterator interface.- Specified by:
removein interfacejava.util.Iterator<java.lang.Object>
-
hasNextEvent
public boolean hasNextEvent() throws javax.xml.stream.XMLStreamExceptionDescription copied from interface:XMLEventReader2Method that is similar toXMLEventReader.hasNext(), except that it can throw aXMLStreamException. This is important distinction, since the underlying stream reader is NOT allowed to throw such an exception when itshasNext()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:
hasNextEventin interfaceXMLEventReader2- Throws:
javax.xml.stream.XMLStreamException
-
isPropertySupported
public boolean isPropertySupported(java.lang.String name)
Description copied from interface:XMLEventReader2Method similar toXMLInputFactory.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:
isPropertySupportedin interfaceXMLEventReader2
-
setProperty
public boolean setProperty(java.lang.String name, java.lang.Object value)Description copied from interface:XMLEventReader2Method that can be used to set per-reader properties; a subset of properties one can set via matchingXMLInputFactory2instance. Exactly which methods are mutable is implementation specific.- Specified by:
setPropertyin interfaceXMLEventReader2- Parameters:
name- Name of the property to setvalue- Value to set property to.- Returns:
- True, if the specified property was succesfully set to specified value; false if its value was not changed
-
-