/** * Returns the read end of the pipe, from which events written to the write * end of the pipe will be available. * * @return The read end of the pipe. */ public synchronized XMLEventReader getReadEnd() { if (readEnd == null) { readEnd = new PipedXMLEventReader(this); } return readEnd; }