# Class EventReaderDelegate

java.lang.Object
javax.xml.stream.util.EventReaderDelegate

All Implemented Interfaces:
  `Iterator<Object>, XMLEventReader`

public class EventReaderDelegate extends Object implements XMLEventReader
This is the base class for deriving an XMLEventReader filter. This class is designed to sit between an XMLEventReader and an application's XMLEventReader. By default each method does nothing but call the corresponding method on the parent interface.

Since:
  1.6
See Also:
  - `XMLEventReader`
  - `StreamReaderDelegate`

## Constructor Summary

Constructors
Constructor
Description
`EventReaderDelegate()`
Construct an empty filter with no parent.
`EventReaderDelegate(XMLEventReader reader)`
Construct an filter with the specified parent.

## Method Summary

Modifier and Type
Method
Description
`void`
`close()`
Frees any resources associated with this Reader.
`String`
`getElementText()`
Reads the content of a text-only element.
`XMLEventReader`
`getParent()`
Get the parent of this instance.
`Object`
`getProperty(String name)`
Get the value of a feature/property from the underlying implementation
`boolean`
`hasNext()`
Check if there are more events.
`Object`
`next()`
Returns the next element in the iteration.
`XMLEvent`
`nextEvent()`
Gets the next XMLEvent.
`XMLEvent`
`nextTag()`
Skips any insignificant space events until a START_ELEMENT or END_ELEMENT is reached.
`XMLEvent`
`peek()`
Check the next XMLEvent without reading it from the stream.
`void`
`setParent(XMLEventReader reader)`
Set the parent of this instance.

### Methods declared in class Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Methods declared in interface Iterator

`forEachRemaining, remove`

## Constructor Details

### EventReaderDelegate

public EventReaderDelegate()
Construct an empty filter with no parent.

### EventReaderDelegate

public EventReaderDelegate(XMLEventReader reader)
Construct an filter with the specified parent.

Parameters:
  `reader` - the parent

## Method Details

### setParent

public void setParent(XMLEventReader reader)
Set the parent of this instance.

Parameters:
  `reader` - the new parent

### getParent

public XMLEventReader getParent()
Get the parent of this instance.

Returns:
  the parent or null if none is set

### nextEvent

public XMLEvent nextEvent() throws XMLStreamException
Description copied from interface: `XMLEventReader`
Gets the next XMLEvent. The initial event is `StartDocument`.

Specified by:
  `nextEvent` in interface `XMLEventReader`
Returns:
  the next XMLEvent
Throws:
  `XMLStreamException` - if there is an error with the underlying XML.
See Also:
  - `XMLEvent`

### next

public Object next()
Description copied from interface: `Iterator`
Returns the next element in the iteration.

Specified by:
  `next` in interface `Iterator<Object>`
Returns:
  the next element in the iteration

### hasNext

public boolean hasNext()
Description copied from interface: `XMLEventReader`
Check if there are more events. Returns true if there are more events and false otherwise.

Specified by:
  `hasNext` in interface `Iterator<Object>`
Specified by:
  `hasNext` in interface `XMLEventReader`
Returns:
  true if the event reader has more events, false otherwise

### peek

public XMLEvent peek() throws XMLStreamException
Description copied from interface: `XMLEventReader`
Check the next XMLEvent without reading it from the stream. Returns null if the stream is at EOF or has no more XMLEvents. A call to peek() will be equal to the next return of next().

Specified by:
  `peek` in interface `XMLEventReader`
Returns:
  the next XMLEvent
Throws:
  `XMLStreamException` - if an error occurs
See Also:
  - `XMLEvent`

### close

public void close() throws XMLStreamException
Description copied from interface: `XMLEventReader`
Frees any resources associated with this Reader. This method does not close the underlying input source.

Specified by:
  `close` in interface `XMLEventReader`
Throws:
  `XMLStreamException` - if there are errors freeing associated resources

### getElementText

public String getElementText() throws XMLStreamException
Description copied from interface: `XMLEventReader`
Reads the content of a text-only element. Precondition: the current event is START_ELEMENT. Postcondition: The current event is the corresponding END_ELEMENT.

Specified by:
  `getElementText` in interface `XMLEventReader`
Returns:
  the text of the element
Throws:
  `XMLStreamException` - if the current event is not a START_ELEMENT or if a non text element is encountered

### nextTag

public XMLEvent nextTag() throws XMLStreamException
Description copied from interface: `XMLEventReader`
Skips any insignificant space events until a START_ELEMENT or END_ELEMENT is reached. If anything other than space characters are encountered, an exception is thrown. This method should be used when processing element-only content because the parser is not able to recognize ignorable whitespace if the DTD is missing or not interpreted.

Specified by:
  `nextTag` in interface `XMLEventReader`
Returns:
  a START_ELEMENT or END_ELEMENT
Throws:
  `XMLStreamException` - if anything other than space characters are encountered

### getProperty

public Object getProperty(String name) throws IllegalArgumentException
Description copied from interface: `XMLEventReader`
Get the value of a feature/property from the underlying implementation

Specified by:
  `getProperty` in interface `XMLEventReader`
Parameters:
  `name` - The name of the property
Returns:
  The value of the property
Throws:
  `IllegalArgumentException` - if the property is not supported