Class XMonitoredInputStream
java.lang.Object
java.io.InputStream
org.processmining.framework.util.progress.XMonitoredInputStream
- All Implemented Interfaces:
Closeable
,AutoCloseable
This 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
FieldsModifier and TypeFieldDescriptionprotected long
Number of bytes read so far.protected int
The last step which has been notified about.protected XProgressListener
Progress listener which is being notified.protected int
The number of steps to be used for progress expression.protected long
Number of bytes per step.protected InputStream
Wrapped, monitored input stream. -
Constructor Summary
ConstructorsConstructorDescriptionXMonitoredInputStream
(File file, XProgressListener progressListener) Creates a new monitored input stream.XMonitoredInputStream
(InputStream stream, long size, JProgressBar progressBar) Creates a new monitored input stream.XMonitoredInputStream
(InputStream stream, long size, XProgressListener progressListener) Creates a new monitored input stream.XMonitoredInputStream
(InputStream stream, long size, XProgressListener progressListener, int stepNumber) Creates a new monitored input stream. -
Method Summary
Modifier and TypeMethodDescriptionint
Returns the number of steps so far.int
read()
int
read
(byte[] b) int
read
(byte[] b, int off, int len) long
skip
(long n) protected void
update
(long readBytes) This method is called by the actual input stream method to provide feedback about the number of read bytes.Methods inherited from class java.io.InputStream
available, close, mark, markSupported, nullInputStream, readAllBytes, readNBytes, readNBytes, reset, skipNBytes, transferTo
-
Field Details
-
stepNumber
protected int stepNumberThe number of steps to be used for progress expression. -
stepSize
protected long stepSizeNumber of bytes per step. -
lastStep
protected int lastStepThe last step which has been notified about. -
bytesRead
protected long bytesReadNumber of bytes read so far. -
stream
Wrapped, monitored input stream. -
progressListener
Progress listener which is being notified.
-
-
Constructor Details
-
XMonitoredInputStream
public XMonitoredInputStream(File file, XProgressListener progressListener) throws FileNotFoundException Creates a new monitored input stream.- Parameters:
file
- The file to be read from.progressListener
- Progress listener to be notified.- Throws:
FileNotFoundException
-
XMonitoredInputStream
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
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(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 Details
-
update
This 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:
IOException
-
getStepNumber
public int getStepNumber()Returns the number of steps so far.- Returns:
- Number of steps.
-
read
- Specified by:
read
in classInputStream
- Throws:
IOException
-
read
- Overrides:
read
in classInputStream
- Throws:
IOException
-
read
- Overrides:
read
in classInputStream
- Throws:
IOException
-
skip
- Overrides:
skip
in classInputStream
- Throws:
IOException
-