org.processmining.framework.log.rfb
Class MonitorInputStream

java.lang.Object
  extended by java.io.InputStream
      extended by org.processmining.framework.log.rfb.MonitorInputStream
All Implemented Interfaces:
java.io.Closeable

public class MonitorInputStream
extends java.io.InputStream

This class proxies for an InputStream, in knowledge of its source's total size. Equipped with a progress bar, it notifies it to reflect the progress of reading data from the proxied stream.

Author:
Christian W. Guenther (christian@deckfour.org)

Field Summary
protected  long nextStep
           
protected  java.io.InputStream parent
           
protected  long pointer
           
protected  javax.swing.JProgressBar progressBar
           
protected  long size
           
protected  long stepSize
           
 
Constructor Summary
MonitorInputStream(java.io.InputStream aParent, long aSize, javax.swing.JProgressBar aProgressBar)
          Creates a new monitor input stream
 
Method Summary
 int available()
           
 void close()
           
protected  void incrementRead(long bytes)
          Adjusts the number of read bytes
 void mark(int arg0)
           
 boolean markSupported()
           
 int read()
           
 int read(byte[] arg0)
           
 int read(byte[] arg0, int arg1, int arg2)
           
 void reset()
           
 long skip(long arg0)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

parent

protected java.io.InputStream parent

progressBar

protected javax.swing.JProgressBar progressBar

size

protected long size

pointer

protected long pointer

stepSize

protected long stepSize

nextStep

protected long nextStep
Constructor Detail

MonitorInputStream

public MonitorInputStream(java.io.InputStream aParent,
                          long aSize,
                          javax.swing.JProgressBar aProgressBar)
Creates a new monitor input stream

Method Detail

incrementRead

protected void incrementRead(long bytes)
Adjusts the number of read bytes

Parameters:
bytes -

read

public int read()
         throws java.io.IOException
Specified by:
read in class java.io.InputStream
Throws:
java.io.IOException

available

public int available()
              throws java.io.IOException
Overrides:
available in class java.io.InputStream
Throws:
java.io.IOException

close

public void close()
           throws java.io.IOException
Specified by:
close in interface java.io.Closeable
Overrides:
close in class java.io.InputStream
Throws:
java.io.IOException

mark

public void mark(int arg0)
Overrides:
mark in class java.io.InputStream

markSupported

public boolean markSupported()
Overrides:
markSupported in class java.io.InputStream

read

public int read(byte[] arg0,
                int arg1,
                int arg2)
         throws java.io.IOException
Overrides:
read in class java.io.InputStream
Throws:
java.io.IOException

read

public int read(byte[] arg0)
         throws java.io.IOException
Overrides:
read in class java.io.InputStream
Throws:
java.io.IOException

reset

public void reset()
           throws java.io.IOException
Overrides:
reset in class java.io.InputStream
Throws:
java.io.IOException

skip

public long skip(long arg0)
          throws java.io.IOException
Overrides:
skip in class java.io.InputStream
Throws:
java.io.IOException