Base class for XMLStreamReader wrappers. The class provides default implementations for
all methods. Each of them calls the corresponding method in the parent reader. This class is
similar to StreamReaderDelegate, with the difference that it is
immutable.

XMLStreamReaderWrapper

getParent

Get the parent stream reader. This method is declared as protected because it should only be
used by subclasses. However, stream reader wrappers that can safely be unwrapped may
implement the DelegatingXMLStreamReader interface to make
this a public method. Note that a corresponding setParent method is
intentionally omitted because XMLStreamReaderWrapper is immutable.