Class XMonitoredInputStream
- java.lang.Object
-
- java.io.InputStream
-
- org.processmining.framework.util.progress.XMonitoredInputStream
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable
public class XMonitoredInputStream extends java.io.InputStreamThis class implements an input stream which can provide a progress listener with feedback about how much of the data in the stream has already been read. This is a useful utility for reading XML-based data, while still providing feedback about expected progress.- Author:
- Christian W. Guenther (christian@deckfour.org)
-
-
Field Summary
Fields Modifier and Type Field Description protected longbytesReadNumber of bytes read so far.protected intlastStepThe last step which has been notified about.protected XProgressListenerprogressListenerProgress listener which is being notified.protected intstepNumberThe number of steps to be used for progress expression.protected longstepSizeNumber of bytes per step.protected java.io.InputStreamstreamWrapped, monitored input stream.
-
Constructor Summary
Constructors Constructor Description XMonitoredInputStream(java.io.File file, XProgressListener progressListener)Creates a new monitored input stream.XMonitoredInputStream(java.io.InputStream stream, long size, javax.swing.JProgressBar progressBar)Creates a new monitored input stream.XMonitoredInputStream(java.io.InputStream stream, long size, XProgressListener progressListener)Creates a new monitored input stream.XMonitoredInputStream(java.io.InputStream stream, long size, XProgressListener progressListener, int stepNumber)Creates a new monitored input stream.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description intgetStepNumber()Returns the number of steps so far.intread()intread(byte[] b)intread(byte[] b, int off, int len)longskip(long n)protected voidupdate(long readBytes)This method is called by the actual input stream method to provide feedback about the number of read bytes.
-
-
-
Field Detail
-
stepNumber
protected int stepNumber
The number of steps to be used for progress expression.
-
stepSize
protected long stepSize
Number of bytes per step.
-
lastStep
protected int lastStep
The last step which has been notified about.
-
bytesRead
protected long bytesRead
Number of bytes read so far.
-
stream
protected java.io.InputStream stream
Wrapped, monitored input stream.
-
progressListener
protected XProgressListener progressListener
Progress listener which is being notified.
-
-
Constructor Detail
-
XMonitoredInputStream
public XMonitoredInputStream(java.io.File file, XProgressListener progressListener) throws java.io.FileNotFoundExceptionCreates a new monitored input stream.- Parameters:
file- The file to be read from.progressListener- Progress listener to be notified.- Throws:
java.io.FileNotFoundException
-
XMonitoredInputStream
public XMonitoredInputStream(java.io.InputStream stream, long size, javax.swing.JProgressBar progressBar)Creates a new monitored input stream.- Parameters:
stream- Monitored, wrapped lower-level input stream.size- Number of bytes to be read from the stream.progressBar- Progress bar to be updated.
-
XMonitoredInputStream
public XMonitoredInputStream(java.io.InputStream stream, long size, XProgressListener progressListener)Creates a new monitored input stream.- Parameters:
stream- Monitored, wrapped lower-level input stream.size- Number of bytes to be read from the stream.progressListener- Progress listener to be notified.
-
XMonitoredInputStream
public XMonitoredInputStream(java.io.InputStream stream, long size, XProgressListener progressListener, int stepNumber)Creates a new monitored input stream.- Parameters:
stream- Monitored, wrapped lower-level input stream.size- Number of bytes to be read from the stream.progressListener- Progress listener to be notified.stepNumber- Number of steps used to express progress.
-
-
Method Detail
-
update
protected void update(long readBytes) throws java.io.IOExceptionThis method is called by the actual input stream method to provide feedback about the number of read bytes. Notifies the attached progress listener if appropriate.- Parameters:
readBytes- The number of read bytes in this call.- Throws:
java.io.IOException
-
getStepNumber
public int getStepNumber()
Returns the number of steps so far.- Returns:
- Number of steps.
-
read
public int read() throws java.io.IOException- Specified by:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
read
public int read(byte[] b, int off, int len) throws java.io.IOException- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
read
public int read(byte[] b) throws java.io.IOException- Overrides:
readin classjava.io.InputStream- Throws:
java.io.IOException
-
skip
public long skip(long n) throws java.io.IOException- Overrides:
skipin classjava.io.InputStream- Throws:
java.io.IOException
-
-