public int read(byte b[], int off, int len) throws IOException { if (available() < len) { copyEvents(len); } return stream.getInputStream().read(b, off, len); }
public int read() throws IOException { if (available() == 0) { copyEvents(0x10000); } return stream.getInputStream().read(); }
public SyntheticEventInputStream(XMLEventReader reader) { this.reader = reader; try { writer = Util.outputFactory.createXMLEventWriter(stream.getOutputStream()); } catch (XMLStreamException e) { throw new RuntimeException(e); } }
private void copyEvents(int length) throws IOException { try { while (reader.hasNext() && stream.getInputStream().available() < length) { writer.add(reader.nextEvent()); } writer.flush(); } catch (XMLStreamException e) { throw new be.re.io.IOException(e); } }
public int available() throws IOException { return stream.getInputStream().available(); }